перенаправление слишком много раз в laravel - PullRequest
0 голосов
/ 28 апреля 2020

когда я вхожу в мой / домашний маршрут, а затем показывает эту проблему перенаправить страницу слишком много раз . Я создал собственное промежуточное программное обеспечение с именем UserRole. В этом промежуточном программном обеспечении я поставил условие: если роль == 1, то маршрут go к root (/) в противном случае это маршрут go к / home. Первое условие сработало правильно, но остальное условие бросить эту проблему перенаправить страницу слишком много раз . Мой код указан ниже:

web.php
Route::get('/', 'FrontendController@FrontPage');
Route::get('/home', 'HomeController@dashboard');

Kernel.php

'user_role' => \App\Http\Middleware\UserRole::class,


UserRole.php(midleware)

public function handle($request, Closure $next)
{
    if(Auth::user()->role == 1){
        return redirect('/');
    }
    else{
        return redirect('/home');
    }
}

Homecontroller.php
  class HomeController extends Controller
 {

 public function __construct()
  {
    $this->middleware('user_role');
  }

 public function dashboard()
  {
    return view('backend.dashboard');
  }
 }

FrontendController.php

class FrontendController extends Controller
{
public function FrontPage(){
    $products=Product::all();
    return view('frontend.main',compact('products'));
}
public function shopPage(){
    $categories=Category::orderBy('name','asc')->get();
    $title='All Product';
    return view('frontend.shop',compact('categories','title'));
 }
}

1 Ответ

3 голосов
/ 28 апреля 2020

У вас бесконечный l oop. Когда вы входите в HomeController, вы проходите мимо промежуточного программного обеспечения. Это промежуточное ПО перенаправляет вас на HomeController, контроллер вызывает промежуточное ПО ....

Вы можете изменить промежуточное ПО следующим образом:

public function handle($request, Closure $next)
{
    if(Auth::user()->role == 1){
        return redirect('/');
    }

    return $next($request);
}

Эта промежуточная проверка, если ваша роль равна 1. Если это правда go в '/' Если не продолжить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...