php - 分页在 Laravel 4 中不起作用

标签 php mysql pagination laravel laravel-4

我正在尝试在 Laravel 4 中使用分页进行相当复杂的查询(我认为使用 Fluent 查询构建器)。

查询 SQL 代码

SELECT `description`, `email`, `website`, `telephone`, `purpose`, `services`,      
       `eligibilitycriteria`, `meetingplace`, `servicecosts`, `area`, 
       `servicetype`, `beneficiarytype`, `charitynumber`, `address`, `contacts`, 
MATCH (
       `name`,`description`,`email`,`website`,`telephone`,`purpose`,`services`,
       `eligibilitycriteria`,`meetingplace`,`servicecosts`,`area`,`servicetype`,
       `beneficiarytype`,`charitynumber`,`address`,`contacts`
      ) 
AGAINST ("dan") AS Score0, 
MATCH (`name`) AGAINST ("dan") AS Score1 FROM `directory_cache`   
WHERE MATCH(
       `description`,`email`,`website`,`telephone`,`purpose`,`services`,
       `eligibilitycriteria`,`meetingplace`,`servicecosts`,`area`,`servicetype`,
       `beneficiarytype`,`charitynumber`,`address`,`contacts`
      ) 
AGAINST ("dan") 
ORDER BY (Score0*1 + Score1*1.5) DESC  

我在我的 Controller 中调用查询生成器末尾的分页,如下所示:

$results = $query->paginate(20);

然后在我看来,我只需调用 $results->links 就可以获得下一页和编号页面等的分页按钮。

但是当我点击第2页时,这就是我遇到问题的地方。

我的表单使用 POST 提交搜索表单。 get 和 post 操作都使用相同的 View 文件来显示搜索表单和结果。

请帮忙,如果您需要更多信息,我很乐意编辑帖子并将其添加进来,我整晚都在这里!

最佳答案

我的建议是使用 Route::any()viewResultssearch 路由到同一路由,这样您就需要为两个操作执行单独的功能

routes.php

Route::any('/list','Controller@viewResults');

Controller.php

function viewResults(){

    $searchQuery = Input::get('searchQuery');
    if(isset($searchQuery))
       $query = DirectoryCache::where(...)->where(...);
    else
       $query = DirectoryCache::where(1, '=', 1);

    $results = $query->paginate();

    //This will append the searchQuery to your pagination links
    $results->appends(array('searchQuery'=>$searchQuery));
}

因此,无论您执行的是 POST 还是 GET,您都将执行相同的操作并且仍然能够执行搜索并获得结果。希望对您有所帮助

关于php - 分页在 Laravel 4 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18641747/

相关文章:

php - 远程调试路径映射

php - PHP 中包含类时无法调用 MySQL

mysql - 当order by col有索引时,为什么mysql需要filesort?

mysql - 查看通过 cron 创建数据库的示例

angularjs - Angular js中嵌套对象的分页

Laravel 按分页排序

javascript - 尽管在 React 中更新状态,方法仍未获得正确的 useState 值

php - Jquery Ajax 插入速度极慢

php - 删除子主题中的父主题 Action

mysql - 如果不为空,则使用 "where"