Laravel:传递模型绑定到路由中间件

5n0oy7gb  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(167)

我有按位置分组的路线。我需要授权当前用户是否可以实际访问特定位置。
我正在将路线 Package 为:

Route::group(['prefix' => "{location}", 'middleware' => "has-location-access:location"], function() {
...

我的中间件handle方法如下:

public function handle(Request $request, Closure $next, Location $location)
    {
        $account = Account::find($request->session()->get('account_id'));
        $this->authorize('manageLocation', [$account, $location]);

        return $next($request);
    }

不是将模型传递给此方法,而是得到一个字符串"location"
App\Http\Middleware\AuthorizeLocationAccess::handle(): Argument #3 ($location) must be of type App\Location, string given
我如何简单地让它将Location $location传递到handle方法中呢?

iklwldmw

iklwldmw1#

试试这个:

Location::find($request->route()->location)

相关问题