0

我和很多其他人在一条类似的船上……从 Codeigniter 到 Laravel。

我正在搜索数据库,并正确提取结果。甚至分页工作正常。(它一次只显示 30 个,并在底部显示其余结果的链接)

您从一个部件搜索视图开始,该视图由控制器中的 get 函数调用。我在控制器中有一个发布功能,它正在拉动结果。(URL 仍然是部分搜索,但正在拉帖子功能)

问题是,当您选择第 6 页(URI 是 parts-search?page=6)时,它会被路由回拉入第一个 part-search 页面的函数。

我想说我必须做这样的事情:

Route::any('parts-search?page=(:any)')

但我不知道如何维护相同的搜索变量,或者是否每次都必须运行查询。

这些是我的文件:

路由.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 天。谢谢!

所以我已经确认这绝对是一个路由问题,但没有关于从哪里开始的模糊线索。而且我整天都在问谷歌大神无济于事。

4

1 回答 1

0

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

要在您想要更改页面时维护查询字符串,您可以附加到分页链接

于 2012-11-17T07:08:26.507 回答