【发布时间】:2018-11-18 13:52:19
【问题描述】:
如何在 laravel eloquent 中从每个父级的模型中获取 n 条记录。
例如,假设我有 products 表和 categories 表。我想要一个名称以A 开头的所有产品的列表,但每个category 不超过 10 个产品。
我的表结构是这样的。
产品表
---------------------------------
id | title | slug | category_id
----------------------------------
分类表
--------------
id | title |
--------------
我试图遵循这个例子,这正是我想要的 https://softonsofa.com/tweaking-eloquent-relations-how-to-get-n-related-models-per-parent/
但是当我在 product model 添加范围后尝试像链接中的示例一样查询时。它抛出和 sql 错误说。
SQLSTATE[HY000]:一般错误:1267 非法混合排序规则 (utf8mb4_unicode_ci,IMPLICIT) 和 (utf8mb4_0900_ai_ci,IMPLICIT) operation '=' (SQL: select count(*) as aggregate from...
谁能告诉我如何获得每个相关模型的 n 个结果或如何修复此错误。
【问题讨论】:
-
什么 MySQL 版本?因为 MySQL 8.0 有比使用 MySQL 的用户变量更好的方法。
-
@RaymondNijland 我正在开发最新的 Xamp 服务器。在 phpmyadmin 中显示服务器版本:10.1.25-MariaDB。我猜那个
-
基本上,错误已经在告诉您该怎么做:检查表的排序规则。如果您故意将它们设置为不同的类型,那么您会很倒霉,因为那样这些类型的查询将不起作用。如果不是这种情况,请确保所有表和列的排序规则都相同。有很多资源可以解释如何去做。
-
@Namoshek,可能是因为我的类别位于 mariadb 的 xamp 服务器上,而我的产品位于 inodb 中的实时服务器上,这可能是导致问题的原因吗?如果是这样,你能告诉我如何解决这个问题吗?谢谢
-
不知道,说实话。对不起。
标签: php mysql laravel laravel-5 eloquent