【发布时间】:2017-03-15 02:26:08
【问题描述】:
我在 laravel 5.3 中使用这两个操作创建了一个策略:
class ProjectPolicy {
...
public function index(User $user)
{
return true;
}
public function create(User $user)
{
return true;
}
...
}
然后我尝试通过路由组中间件进行授权:
Route::group(['middleware' => ['can:index,create,App\Project']], function () {
Route::resource('projects', 'ProjectController');
});
当然我已经正确地创建了项目模型和控制器,但是调用索引和创建操作总是返回 403 禁止响应。问题出在哪里?
更新:
从路由中间件中删除其中一项操作会产生正确的响应。像这样:
Route::group(['middleware' => ['can:index,App\Project']], function () {
Route::resource('projects', 'ProjectController');
});
【问题讨论】:
-
您是否尝试使用剩余操作创建第二个 Route::group 块。那将是 ...can:create,App\Project...?
-
是的,但第二组将取决于第一个中间件的结果,如果第一个中间件返回错误的中断...
-
也许这会有所帮助。很抱歉,我不知道答案。刚刚谷歌了一下这个问题:stackoverflow.com/questions/38580890/…祝你好运!