【问题标题】:Laravel Routing with pagination and restful controllersLaravel 路由与分页和 restful 控制器
【发布时间】:2012-11-05 08:02:42
【问题描述】:

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

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

您从一个部件搜索视图开始,该视图由控制器中的 get 函数调用。我在控制器中有一个发布功能,它正在拉动结果。 (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 天。谢谢!

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

【问题讨论】:

    标签: routing pagination laravel


    【解决方案1】:

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

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

    【讨论】:

    • 好的,所以现在我的问题是分页创建了带有 ? 的链接,但除非它们是 /,否则我无法解析它们。如果我尝试设置 Route::get('results?(:any?)', function($term = NULL) 我仍然得到 404
    猜你喜欢
    • 2014-01-24
    • 2012-12-24
    • 2017-10-20
    • 2013-06-09
    • 2013-06-04
    • 2013-03-24
    • 1970-01-01
    • 2023-03-27
    • 2017-03-05
    相关资源
    最近更新 更多