Laravel undefined方法有() - 很多很多基于关系数量的记录

时间:2014-04-09 21:46:34

标签: php laravel laravel-4 eloquent

我正在尝试使用Laravel 4.0.x中的Eloquent ORM来执行查询,将行中的列与相关模型的数量进行比较。

假设我在多人关系中有以下模型:

Class
-----
id
name
capacity

Student
-------
id
name

所以说我想知道哪些课程达到或超过了他们的能力。

似乎according to the docs here,我应该可以使用has()来执行此查询。

但是,如果我这样做:

$classes = Class::has('students', '>=', 50)->get();

我收到BadMethodCallException,说“调用未定义的方法Illuminate \ Database \ Query \ Builder :: has()”。 上面链接的文档中的示例使用了前面提到的One-Many关系。我尝试通过制作每个类StudentLinks的{​​{1}}模型来复制它,但它仍然不适用于我。相同的BadMethodCallException。

4.0.x中是否有()实际存在?它在文档中......

这不是唯一的问题,因为尽管我已经知道了,hasMany()方法,即使它确实存在,也无法访问列,尽管我没有任何证据证明这一点。 。这是由于文档中缺乏信息而引起的猜测。

我想要做的基本上是:

has()

因为容量存储在我正在查询的表格中......但这显然不适合我。在我获得记录之后,获取每个班级的实际学生数量是微不足道的,但我想在一个查询中这样做,所以我可以对它进行分页。选择后执行过滤器会让我难以手动分页,而不是使用Laravel's built-in Pagination

让我们来谈谈原始数据库,这里:如果我在SQL中这样做,我会这样做:

$full_courses = Class::has('students', '>=', 'capacity')->get();

但我喜欢我的模特。

非常感谢任何帮助。

0 个答案:

没有答案