laravel, если маршрут нулевой или не существует перенаправления на другую страницу - PullRequest
0 голосов
/ 01 июля 2018

у меня есть маршрут. Возможно ли, что когда {id} не существует, он будет перенаправлен на определенную страницу или страницу с пользовательской ошибкой? что-то вроде if (id = null) {возврат перенаправления и т.д ..}

Route::get('term/test/{id}', 'ListController@get_term_level');


 public function get_term_level($id)
 {

   // $terms = Term::find($id);
     $terms=Term::with('level')->where('id','=',$id)->get();
     if(is_null($terms)) { 
        return redirect()->to('/mypage');
   }
   else{

    return view('term_level.index',compact('terms'));
   }

 }

Ответы [ 3 ]

0 голосов
/ 01 июля 2018

Внутри вашего метода get_term_level вы могли бы к следующему

public function get_term_level($id)
{
    $terms = Term::with('level')->where('id','=',$id)->get();

    if($terms->isEmpty()) { 
        return redirect()->to('/mypage');
    }

    return view('term_level.index',compact('terms'));
}
0 голосов
/ 01 июля 2018

Вы можете попробовать следующее, если не хотите изменять текущую структуру данных
view файл.

public function get_term_level($id)
{
     // $terms = Term::find($id);
     $terms = Term::with('level')->where('id','=',$id)->get();
     if ($terms->count() === 0) { 
        return redirect()->to('/mypage');
     } 

     return view('term_level.index', compact('terms'));
}
0 голосов
/ 01 июля 2018

Вы могли бы просто иметь маршрут, который перенаправляет

Route::get('term/test', 'ListController@redirectHereFunction');
Route::get('term/test/{id}', 'ListController@get_term_level');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...