我和很多其他人在一条类似的船上......从Codeigniter到Laravel。
我正在搜索数据库,并正确地提取结果。甚至让分页正常工作。 (它一次只显示30个,并显示其余结果的底部链接)
您从零件搜索视图开始,该视图由控制器中的get函数调用。我在控制器中有一个post函数来拉取结果。 (URL仍然是部分搜索,但正在拉取帖子功能)
问题是,当您选择第6页(URI为parts-search?page = 6)时,它会被路由回到第一部分搜索页面中的函数。
我想说我必须做这样的事情:
Route::any('parts-search?page=(:any)')
但我不知道如何维护相同的搜索变量,或者每次都必须运行查询。
这些是我的文件:
routes.php文件
Route::controller('home');
Route::get('/', function()
{
return View::make('home');
});
Route::get('parts-search', 'home@parts_search');
Route::post('parts-search', 'home@parts_search');
home.php(控制器)
public $restful = true;
public function get_index()
{
return View::make('home');
}
public function get_parts_search()
{
return View::make('part-search');
}
public function post_parts_search()
{
if (Input::get('part_search'))
{
$term = Input::get('part_search');
$parts = Part::where('part', 'LIKE', $term.'%')
->order_by('part', 'asc')
->paginate(30);
return View::make('results')
->with('parts', $parts)
->with('term', $term);
}
else
{
return View::make('part-search')
->with('error', '<h1>Please enter a search term</h1>');
}
}
对我来说,直接的答案和我学习的地方都会受到极大的赞赏......以及任何课程更正,因为这是Laravel的第3天。谢谢!
所以我已经确认它肯定是一个路由问题,但是没有关于从哪里开始的faintess线索。我整天都在问谷歌的神无济于事。
答案 0 :(得分:0)
这通常是 为什么将查询作为GET请求进行搜索,以便搜索关键字出现在URI中。大多数应用程序都是这样做的,甚至Stack Overflow。
要在您想要更改页面can append to the pagination links时维护查询字符串。