Laravel - Union + Paginate at the same time?(Laravel - 同时联合 + 分页?)
问题描述
简介:
我正在尝试合并 2 个表 recipes
和 posts
,然后将 ->paginate(5)
添加到查询中.
I am trying to union 2 tables recipes
and posts
then add ->paginate(5)
to the queries.
但由于某种原因,我收到此错误:
But for some reason I get this error:
基数违规:1222 使用的 SELECT 语句有一个不同的列数(SQL:(选择计数(*)作为聚合来自帖子
Cardinality violation: 1222 The used SELECT statements have a different number of columns (SQL: (select count(*) as aggregate from
posts
代码:
$recipes = DB::table("recipes")->select("id", "title", "user_id", "description", "created_at")
->where("user_id", "=", $id);
$items = DB::table("posts")->select("id", "title", "user_id", "content", "created_at")
->where("user_id", "=", $id)
->union($recipes)
->paginate(5)->get();
我做错了吗?
没有 ->paginate(5)
查询工作正常.
Without ->paginate(5)
the query works fine.
推荐答案
你说得对,分页导致问题.现在,您可以创建一个视图并查询该视图而不是实际的表,或手动创建您的 Paginator
:
You're right, pagination cause problem. Right now, you can create a view and query the view instead of the actual tables, or create your Paginator
manually:
$page = Input::get('page', 1);
$paginate = 5;
$recipes = DB::table("recipes")->select("id", "title", "user_id", "description", "created_at")
->where("user_id", "=", $id);
$items = DB::table("posts")->select("id", "title", "user_id", "content", "created_at")
->where("user_id", "=", $id)
->union($recipes)
->get();
$slice = array_slice($items->toArray(), $paginate * ($page - 1), $paginate);
$result = Paginator::make($slice, count($items), $paginate);
return View::make('yourView',compact('result'));
这篇关于Laravel - 同时联合 + 分页?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Laravel - 同时联合 + 分页?
基础教程推荐
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- PHP 守护进程/worker 环境 2022-01-01
- HTTP 与 FTP 上传 2021-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- 使用 PDO 转义列名 2021-01-01