【发布时间】:2017-07-26 22:40:19
【问题描述】:
我想知道如何加载满足特定条件的类型的所有模型。
让我们采用以下示例设置。
我有 2 个雄辩的模型,House 和 Rental。 House 与 Rental 有 hasMany 关系。
public function rentals()
{
return $this->hasMany(Rental::class);
}
Rental 类有一个 review 列,该列可以具有以下值:positive 或 negative。
现在我想“覆盖”默认查询构建器,可以使用:
public function newQuery($excludeDeleted = true) {
return parent::newQuery($excludeDeleted);
}
注意:这不会改变默认行为。
我想知道如何更改默认的 House 查询以仅返回至少具有任意数字 (x) Rentals 且 review 等于 @ 的 House 实例987654336@.
所以House::all() 应该只返回Houses 至少有x positive Rentals。
如果您还可以解释如何添加另一个可用于查询所有Houses的函数,则可以加分
我的问题似乎与 Laravel 的 softDeletes 特征有很多共同点,softDeletes 模型只查询 deleted_at 列不为空的模型。我的问题的额外部分可以看作是查询中的::withTrashed() 选项。
该应用程序基于 Laravel 5.4 构建。
【问题讨论】:
-
在您的
House::all()示例中,x的值在哪里确定?
标签: laravel eloquent relationship