我如何限制未在 laravel 中批准的供应商的路线?
how can I restricted route for vendor who is not approved in laravel?
我的 laravel 电子商务中有 3 种类型的用户管理员、供应商、客户。
现在我必须限制那些未经管理员批准的供应商的路线。
请问有人可以告诉我过程吗?
这里是 users 和 shops 这两个表。
用户具有这些属性
id, name, password, email, phone
商店有
shop_name, address, shop_phone, owner_id (this is a foreign key of users.id), is_approved(bool)
- 这里给出了用户有一个店铺关系。
现在我需要知道如何限制所有未经批准的授权路线意味着 is_approved==0
商店。
谁能帮帮我?
创建一个中间件:
php artisan make:middleware CheckIsApproved
将在 app/Http/Middleware/CheckIsApproved.php
fille 中创建一个新的中间件 class。
然后在中间的handle
方法中,可以做校验:
public function handle ($request, Closure $next)
{
if (auth()->user()->shop->is_approved) {
return $next($request);
}
return back()->with('error', 'Unauthorized');
}
(您可能需要根据关系自定义if
中的条件)
在文件app/Http/Kernel.php
中,注册中间件:搜索$routeMiddleware
属性并添加:
protected $routeMiddleware = [
//...
'isApproved' => \App\Http\Middleware\CheckIsApproved::class,
];
然后,在你的路由定义中,你可以指定中间件:
Route::get('/some-route', 'SomeRouteController@show')->middleware('isApproved');
查看 docs 了解更多信息
我的 laravel 电子商务中有 3 种类型的用户管理员、供应商、客户。
现在我必须限制那些未经管理员批准的供应商的路线。 请问有人可以告诉我过程吗?
这里是 users 和 shops 这两个表。
用户具有这些属性
id, name, password, email, phone
商店有
shop_name, address, shop_phone, owner_id (this is a foreign key of users.id), is_approved(bool)
- 这里给出了用户有一个店铺关系。
现在我需要知道如何限制所有未经批准的授权路线意味着 is_approved==0
商店。
谁能帮帮我?
创建一个中间件:
php artisan make:middleware CheckIsApproved
将在 app/Http/Middleware/CheckIsApproved.php
fille 中创建一个新的中间件 class。
然后在中间的handle
方法中,可以做校验:
public function handle ($request, Closure $next)
{
if (auth()->user()->shop->is_approved) {
return $next($request);
}
return back()->with('error', 'Unauthorized');
}
(您可能需要根据关系自定义if
中的条件)
在文件app/Http/Kernel.php
中,注册中间件:搜索$routeMiddleware
属性并添加:
protected $routeMiddleware = [
//...
'isApproved' => \App\Http\Middleware\CheckIsApproved::class,
];
然后,在你的路由定义中,你可以指定中间件:
Route::get('/some-route', 'SomeRouteController@show')->middleware('isApproved');
查看 docs 了解更多信息