Laravel 5.8 中 hasMany 关系的条件
Posted
技术标签:
【中文标题】Laravel 5.8 中 hasMany 关系的条件【英文标题】:where Has Condition on a hasMany relationship in Laravel 5.8 【发布时间】:2020-05-03 06:10:52 【问题描述】:我在一个模型 FeeModuleModel 中有如下关系
public function heads()
return $this->hasMany('App\Models\FeeHeadModel','location_id','id');
在我的控制器文件中,我只需要获取 FeeHeadModel 类型为非结构化的值 FeeModuleModel 我的控制器代码如下所示
$modules = FeeModuleModel::where('vt_ay_id', '=', Session::get('sess_ay_id'))->with(['heads'=>function($q)
$q->where('type','=','unstructured');
])->orderby('priority', 'asc')->get();
这会失败并出现以下错误
调用数组上的成员函数 getRelationExistenceQuery()
我的代码有什么问题以及我可以做些什么来解决它
【问题讨论】:
【参考方案1】:请将您的代码更改为这个
$modules = FeeModuleModel::with(['heads'=>function($q)
$q->where('type','=','unstructured');
])->where('vt_ay_id', '=', Session::get('sess_ay_id'))->orderby('priority', 'asc')->get();
【讨论】:
以上是关于Laravel 5.8 中 hasMany 关系的条件的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 关系查询加载 hasMany + BelongsToMany
如何从 Laravel 中的 hasMany() 关系中获取所有结果?
Laravel 多对多关系( hasMany 或 belongsToMany )