Win*_*air 8 laravel laravel-5.2
我使用生成器生成一个简单的策略:
php artisan make:policy TeamPolicy
Run Code Online (Sandbox Code Playgroud)
并且,我已将其注册AuthServiceProvider为:
protected $policies = [
Team::class => TeamPolicy::class,
];
Run Code Online (Sandbox Code Playgroud)
我试着把它TeamsController称为:
$this->authorize('update', $team);
Run Code Online (Sandbox Code Playgroud)
这是我的政策文件Policies\TeamPolicy.php:
<?php
namespace App\Policies;
use App\Team;
use Illuminate\Auth\Access\HandlesAuthorization;
class TeamPolicy
{
use HandlesAuthorization;
/**
* Create a new policy instance.
*
* @return void
*/
public function __construct()
{
//
}
public function update( Team $team)
{
App:debug("Policy update called!");
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,从不调用策略中的更新方法,并且在调用时出现错误403 $this->authorize('update', $team);
请指教!
Policy 方法的第一个参数应该是要检查授权的用户。尝试改为:
public function update(User $user, Team $team)
{
//...
}
Run Code Online (Sandbox Code Playgroud)