如何根据Laravel中的GET变量进行路由

时间:2014-12-23 16:54:57

标签: php laravel laravel-4

我正在尝试通过从URL获取变量名来进行路由。此变量将使用select附加到网址。

所以我的网址就像:example.com/?city=Montreal

在route.php中,我有:

Route::get('/?city={name}', 'HomeController@filterHome' );
Route::get('/', 'HomeController@home' );

并在HomeController.php我有

public function home(){
    $nom= Nom::get();
    return View::make('home.index')->with('nom', $nom);
}

public function filterHome($place){
    $nom = Nom::where('place', '%LIKE%', $place)->get();
    return View::make('home.index')->with('nom', $nom);
}

但这似乎不起作用。在这种情况下,在Laravel路线的最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

您不能在路径定义中放置查询字符串。

使用一个路线和一个功能可以轻松处理:

Route::get('/', 'HomeController@home' );

public function home(){
  $nom= Nom::query();

  if(Input::get('city')) {
    $nom->where('place', 'LIKE', '%' . Input::get('city') . '%');
  }

  return View::make('home.index')->with('nom', $nom->get());
}