Laravel 5
在满足某些条件时如何授予用户访问特定路由的权限?
例如,让用户访问
Route::get(view('posts/{id}'),'PostsController@show');
当用户的“用户”->“积分”列中的积分超过100时。
答案 0 :(得分:1)
您可以使用Middleware,在Laravel中,通过创建自己的中间件来保护路由非常容易。
需要执行以下步骤:
run command php artisan make:middleware Middlewarename
,您将在app/Http/Middleware/yourcustomemiddleware.php
app/Http/kernel.php
文件中注册中间件您的MiddlewareClassCode:
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (Auth::user()->points >= 100)
{
return $next($request);
}
return redirect()->back()->with('flash_message','you are not allowed to access this');
}
routes / web.php:
Route::get(view('posts/{id}'),'PostsController@show')->middleware('yourcustommiddleware');
现在您的路线已全部完成。
摘要::中间件中的此语句return $next($request);
将在条件匹配时返回路由,否则它将重定向到先前的路由。
注意:我不知道您的数据库结构,这只是一个示例,向您展示什么是中间件,中间件如何工作以及如何使用它。