Laravel路由与分页和宁静的控制器

时间:2012-11-16 15:08:04

标签: routing pagination laravel

我和很多其他人在一条类似的船上......从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线索。我整天都在问谷歌的神无济于事。

1 个答案:

答案 0 :(得分:0)

这通常是 为什么将查询作为GET请求进行搜索,以便搜索关键字出现在URI中。大多数应用程序都是这样做的,甚至Stack Overflow。

要在您想要更改页面can append to the pagination links时维护查询字符串。