Для этого вы можете использовать Промежуточное программное обеспечение . В Laravel очень легко защитить ваши маршруты, создав собственные промежуточные программы.
Для этого необходимы следующие шаги:
run command php artisan make:middleware Middlewarename
и вы найдете ваше промежуточное ПО внутри app/Http/Middleware/yourcustomemiddleware.php
- Зарегистрируйте ваше промежуточное ПО в файле
app/Http/kernel.php
, который вы только что создали - Теперь реализуйте логику в промежуточном ПО, которое вытолько что создал:
YourMiddlewareClassCode:
/**
* 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');
}
Прикрепите промежуточное программное обеспечение к вашему маршруту:
routs / web.php:
Route::get(view('posts/{id}'),'PostsController@show')->middleware('yourcustommiddleware');
Все сделано, теперь ваш маршрут защищен.
Сводка: этот оператор return $next($request);
в промежуточном программном обеспечении вернет маршрут, когда будет выполнено условие, иначе он будет перенаправлен на предыдущий маршрут.
Примечание: Я не знаю вашу базу данныхструктура, а также это только пример, чтобы показать вам, что такое промежуточное программное обеспечение и как оно работает и как вы можете его использовать.