我有一个配置了 Cartalyst\Sentinel (v2.0.15) 包的 Laravel 5.3 项目。我有这条线
$hasPermission = Sentinel::getUser()->hasAccess($routeName);
但我不断收到此错误消息:
Argument 2 passed to
Cartalyst\Sentinel\Permissions\StandardPermissions::prepare Permissions() must be of the type array, null given
我查看了 Google 和包的 github 页面,但找不到任何可以帮助我解决这个问题的东西。
当我查看包的源代码时,我看到了这段代码:
/**
* {@inheritDoc}
*/
protected function createPreparedPermissions()
{
$prepared = [];
// $this->secondaryPermissions equals to:
// [
// 0 => NULL,
// ]
if (! empty($this->secondaryPermissions)) {
foreach ($this->secondaryPermissions as $permissions) {
// this is the line where it throws the error as $permissions == NULL
$this->preparePermissions($prepared, $permissions);
}
}
if (! empty($this->permissions)) {
$permissions = [];
$this->preparePermissions($permissions, $this->permissions);
$prepared = array_merge($prepared, $permissions);
}
return $prepared;
}
secondaryPermissions 数组不为空。这些“次要”权限是什么?我查看了 Sentinel 的文档页面,但找不到任何相关信息。我唯一能找到的是“用户”可以拥有权限,但“角色”也可以。我当前的数据库设置是角色具有权限,但我的用户都没有任何特定权限。所以我的用户表中的“权限”字段总是等于 NULL。
谢谢。