Laravel - 路由中间件始终为 403

问题描述 投票:0回答:2

App\Http\Controllers\Admin\ExampleController.php

public function index()
{
    dd('index');
}

app\Policies\ExamplePolicy.php

public function viewAny(User $user)
{
    return true;
}

app\Providers\AuthServiceProvider.php

protected $policies = [
    'App\Models\Example' => 'App\Policies\ExamplePolicy',
];

routes/admin.php

Route::get('example', [ExampleController::class, 'index'])->middleware('can:viewAny,App\Models\Example')

但是

->middleware('can:viewAny,App\Models\Example')
总是返回 403,当我删除它时,
dd('index')
将运行。

我错过了什么吗?

php laravel routes middleware
2个回答
1
投票

虽然我已经登录了,但是由于

auth()->user()
和其他的分离,
admin
一直为空。因此,只需将
web
添加到中间件即可。

Route::get('example', [ExampleController::class, 'index'])->middleware(['web', 'can:viewAny,App\Models\Example'])

0
投票

同样的问题,这个问题解决了吗?

© www.soinside.com 2019 - 2024. All rights reserved.