0
votes

i have a route is it possible that when the {id} does not exist it will redirect to a certain page or custom error page? something like if(id=null){return redirect etc..}

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

3 Answers

3
votes

You may try the following if you don't want to change your current data structure of
view file.

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'));
}
1
votes

Inside your method get_term_level you could to the following

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
votes

You could just have a route that redirects

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