【发布时间】:2020-06-18 22:17:44
【问题描述】:
我正在尝试通过急切加载来加载关系。但是,想将属性传递给关系函数。
(Laravel 6.x)
模型 - taxChildren() 需要一个 ID
public function taxChildren($moduleId)
{
return $this->hasMany($this, 'parent')->where('module', '=', $moduleId')->orderBy('created_at', 'asc');
}
控制器
$departments = tax::where([
['module', '=', $this->departmentsModuleId],
])
->whereNull('parent')
->with([
'taxChildren' => ['moduleId', '2']
])
->get();
现在,我知道我可以像这样向我的关系传递查询:
$departments = tax::where([
['module', '=', $this->departmentsModuleId],
])
->whereNull('parent')
->with([
'taxChildren' => function($query){
$query->where('module', '=', $this->departmentsModuleId);
},
])
->get();
但我会经常将它用于多个相似的关系。任何人都知道如何实现这一目标?谢谢!
【问题讨论】: