Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel授权不起作用_Php_Laravel_Laravel 5_Authorization_Laravel Blade - Fatal编程技术网

Php Laravel授权不起作用

Php Laravel授权不起作用,php,laravel,laravel-5,authorization,laravel-blade,Php,Laravel,Laravel 5,Authorization,Laravel Blade,我试图隐藏一个按钮,并显示它只有管理员,我想我写的代码很好,但仍然无法得到我想要的结果,我无法看到按钮与管理员帐户也与正常的用户帐户 FolderPolicy代码 public function create(User $user) { if($user->is_admin) return true; } 景色 @can('create') <a class="btn btn-primary" href="{{ rou

我试图隐藏一个按钮,并显示它只有管理员,我想我写的代码很好,但仍然无法得到我想要的结果,我无法看到按钮与管理员帐户也与正常的用户帐户

FolderPolicy代码

public function create(User $user)
{
    if($user->is_admin)
        return true;
}
景色

        @can('create')
            <a class="btn btn-primary" href="{{ route('newdoss') }}">New Folder</a>
        @endcan

我知道还有其他方法可以通过检查direclty来获得我想要的结果,如果经过身份验证的用户是管理员,但是我想弄清楚为什么这个方法不起作用。谢谢。

您需要指定要创建的资源或模型。使用create,可以传递类的名称。对于更新和删除,可以传递类的实例

@can('create', \App\Folder::class)
当策略失败时,还需要返回false。您可以将创建方法简化为:

public function create(User $user)
{
    return (bool) $user->is_admin
}

您是否使用任何角色/权限库,如?如果你不是,你可能想研究一下,如果它不迫使你调整你的应用程序太多了@角色“admin”这对具有admin角色的用户可见。被翻译成\estrust::role'admin'

@endroleno,我在数据库中有一个专栏名为is_admin,我正在使用laravel策略。@Mehdi你在服务提供商中注册了这个策略吗?这是一个小应用程序,我只有两个角色,所以我不需要库,我只是想了解laravel,我知道我可以用@ifAuth::user->is_adminmy text

@endif解决我的问题,但我想了解更多关于laravel中的策略的信息。@Devon是的,我编辑了我的帖子。是的,我在查看laravel文档时尝试过,但不起作用,这就是为什么我说我认为我的代码是正确的,但我不明白为什么它不工作。哦,谢谢,它现在工作了,当我添加反斜杠时。我还有另外一个问题,你认为对按钮使用create方法合乎逻辑吗?看起来不错,这会让用户体验专注于用户可以做什么。
public function create(User $user)
{
    return (bool) $user->is_admin
}