我有一个hasOne的关系。下图显示了具有相同“contract_id”的关系记录
需要以下结果:
我想只选择最高版本=> 5的最后一条记录,但前提是“状态”列不是“草稿”。否则,如果关系不满足条件,则根本不选择父记录。($contract::with('latestVersion ')->paginate())
我不想得到满足条件的下一个可能的记录-意思是:
我不想获得“状态活动”的“版本3”
enter image description here
我尝试按latest()或groupBy('version')排序...
2条答案
按热度按时间tzxcd3kk1#
将
->where('status', '!=', 'draft')
添加到您的条件更多关于主题:https://laravel.com/docs/10.x/queries#where-clauses
nzk0hqpo2#
也许你可以使用
whereHas
或withWhereHas
,在has
查询中添加额外的where
条件。参考:https://laravel.com/docs/10.x/eloquent-relationships#querying-relationship-existence
希望这会有帮助