laravel,如果route为null或不存在,则重定向到其他页面

时间:2018-07-01 13:14:20

标签: php laravel routing

我有一条路线,当{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 :(得分:3)

如果您不想更改当前的数据结构,请尝试以下操作
 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'));
}

答案 1 :(得分:1)

在方法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'));
}

答案 2 :(得分:0)

您可能只有一条重定向的路线

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