2016-06-17 4 views
0

У нас было одно приложение, разработанное почти год назад, и здесь я столкнулся с проблемой. После подписания хром говорит: The localhost page isn’t working, localhost redirected you too many times.. И проблема заключается в этом фрагменте кода контроллера, который, хотя я его удаляю, работает отлично. Я не мог понять, что с этим не так.Laravel - Localhost перенаправил вас слишком много раз

if(Auth::check()){ 
     $usertype=usertype::where('uid','=',Auth::user()->id)->first(); 
     if(isset($usertype)){ 
     if($usertype->type==1){ 
      $shopcatagory=shopcatagory::where('sid','=',Auth::user()->id)->first(); 
      $shopsubcatagory=shopsubcatagory::where('sid','=',Auth::user()->id)->first(); 
      $shopphone=shopphone::where('sid','=',Auth::user()->id)->first(); 
      $shopaddress=shopaddress::where('sid','=',Auth::user()->id)->first(); 
      $shopplace=shopplace::where('sid','=',Auth::user()->id)->first(); 
      if(!isset($shopaddress) || !isset($shopcatagory) || !isset($shopsubcatagory) || !isset($shopphone) || !isset($shopplace)){ 
       return Redirect::action('[email protected]',Auth::user()->id); 
      } 
     } 

     else if($usertype->type==3){ 
      $shopphone=shopphone::where('sid','=',Auth::user()->id)->first(); 
      $shopaddress=shopaddress::where('sid','=',Auth::user()->id)->first(); 
      $shopplace=shopplace::where('sid','=',Auth::user()->id)->first(); 
      if(!isset($shopaddress) || !isset($shopphone) || !isset($shopplace)){ 
       return Redirect::action('[email protected]',Auth::user()->id); 
      } 
     } 

     else if($usertype->type == 2){ 
      $userinterests=userinterests::where('uid','=',Auth::user()->id)->first(); 
      if(!isset($userinterests)){ 
       return Redirect::action('[email protected]'); 
      } 
     } 

     } 
    } 
+0

Помимо кода, склеенного таким образом, его трудно прочитать, очевидно, что происходит бесконечный цикл. Просто прочитайте эту капусту и определите, какие части могут потерпеть неудачу, и обработали ли вы эту неудачу или нет (от взгляда на этот салат, который вы создали, ваш код может потерпеть неудачу на стольких местах, что не стоит писать ответ, чтобы выделить каждый). –

+0

Во время публикации этого я думал то же самое, что и наш первый опыт работы с Laravel, и теперь я не могу изменить их всех, чтобы просто улучшить его. Очевидно, что это код спагетти, и я чувствую себя плохо, когда я это видел. –

+0

@jszobody опубликуйте его как ответ, чтобы я мог проверить его как правильный ответ. Да, эти проверки выполнялись там, и их устранение решило проблему. –

ответ

1

В этом большом Auth::check блоке есть два разных маршрута, которые вы потенциально пересылают на: accountinfo и interests.

Так что если вы застреваете в бесконечном цикле, то это звучит так, как будто этот код работает на одном (или обоих) этих маршрутах!

Следите за тем, чтобы ни один из этих двух маршрутов не включал этот код Auth::check с переадресацией.

Смежные вопросы