我正在尝试通过从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路线的最佳方式是什么?
答案 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());
}