Laravel Policy不会注入当前用户

时间:2015-12-04 10:56:07

标签: php laravel authorization ioc-container

我试图为用户绑定一个策略,检查他是否在另一个表中有一条记录,并且标志设置为true。但是,我使用的政策并没有注入当前用户。

AuthServiceProvider.php

/**
 * The policy mappings for the application.
 *
 * @var array
 */
protected $policies = [
    \App\Http\Models\User::class => \App\Policies\UserPolicy::class,
];

应用\策略\ UserPolicy

<?php

namespace App\Policies;

use App\Http\Models\User;
use Illuminate\Auth\Access\HandlesAuthorization;

class UserPolicy
{
    use HandlesAuthorization;

    public function view(User $user)
    {
        return true;
        // currently just debug value
    }
}

在laravel文档中,它表示为:

  

所有策略都通过Laravel服务容器解析,这意味着您可以在策略的构造函数中键入提示任何所需的依赖项,它们将自动注入。

使用auth()->user()->can('view') - 在依赖的控制器中对表的记录进行检查 - 无论如何都要返回false。让它运作的唯一方法是打电话给 auth()->user()->can('view', auth()->user())$this->authorize('view', auth()->user())

为了让第一种方法起作用,我缺少什么?

编辑:如果我在方法本身或构造函数中键入用户,因为它似乎被忽略,这无关紧要。

0 个答案:

没有答案