【发布时间】:2020-12-10 15:58:23
【问题描述】:
我创建了一个 package for searching models with JSON input,它在 Eloquent 模型上公开了一个 search 宏。
在尝试包装查询时,我注意到一个奇怪的行为,所以我想知道我是否做错了什么。
例如,像这样加载关系:
Builder::macro('search', function () {
return $this->with('someRelation');
});
结果是所有模型都加载了它们的关系,看起来都很好。
将其包装在额外的 where 子句中会导致它仅加载模型而不加载任何关系:
Builder::macro('search', function (array $input) {
return $this->where(function (Builder $builder) {
$builder->with('someRelation');
});
});
为什么这不起作用?如何在包裹在外部where 中时使其加载关系?
【问题讨论】:
标签: php laravel eloquent query-builder laravel-7