我使用的是Laravel 5.1,我遇到了路由问题。目前,我在routes.php
Route::get('/', 'ArticleSiteController@index');
Route::get('article/search/{text}', 'ArticleController@search');
Route::get('article/{url}', 'ArticleController@show');
Route::get('/{url}', 'PageController@index');
路由被正确地重定向,但搜索总是使用ArticleController@show
路由。
在主页上,我有一个搜索表单。
<form class="form-horizontal" action="http://example.com/article/search/" method="GET">
<input type="text" name="txtSearch" class="form-control" placeholder="Search for...">
<span class="input-group-btn">
<button class="btn btn-primary" type="submit">Go!</button>
</span>
</form>
重定向到此网址:http://example.com/article/search/?txtSearch=test
(这是正确的)但使用ArticleController@show
方法而不是ArticleController@search
。
答案 0 :(得分:1)
与article/search/{text}
您实际上使用http://example.com/article/search/
作为查询字符串调用?txtSearch=test
。所以它是ArticleController@show
动作
http://example.com/article/search/test
应由ArticleController@search
查询参数是传递给特定路线的附加数据,它们不是实际路线的一部分。
答案 1 :(得分:1)
试试这个
Route::get('article/search', 'ArticleController@search');
使用此功能。
public function search(){
$txtSearch = Input::get('txtSearch');
$data = MyModel::where('myField','like','%'.$txtSearch.'%')->get();
return View::make('folder.myFile')->with('data',$data);
}
我希望这对你有所帮助。