php Laravel -路由始终为403的中间件

b1zrtrql  于 2023-10-15  发布在  PHP
关注(0)|答案(1)|浏览(119)

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')将运行。
我错过了什么吗?

w80xi6nr

w80xi6nr1#

虽然我已经登录了,但由于admin和其他的分离,auth()->user()一直为空。因此,只需将web添加到中间件,它就可以工作了。

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

相关问题