按关系排序列 [英] Order by relationship column
本文介绍了按关系排序列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下查询:
$items = UserItems::with('item')
->where('user_id','=',$this->id)
->where('quantity','>',0)
->get();
我需要按item.type进行订购,所以我尝试了:
I need to order it by item.type so I tried:
$items = UserItems::with('item')
->where('user_id','=',$this->id)
->where('quantity','>',0)
->orderBy('item.type')
->get();
但我得到Unknown column 'item.type' in 'order clause'
我想念什么?
推荐答案
join()效果很好,这要感谢@rypskar
注释
join() worked fine thanks to @rypskar
comment
$items = UserItems
::where('user_id','=',$this->id)
->where('quantity','>',0)
->join('items', 'items.id', '=', 'user_items.item_id')
->orderBy('items.type')
->select('user_items.*') //see PS:
->get();
PS:为避免id
属性(或两个表之间的任何共享名称属性)重叠并导致错误的值,您应使用select('user_items.*')
指定选择限制.
PS: To avoid the id
attribute (or any shared name attribute between the two tables) to overlap and resulting in the wrong value, you should specify the select limit with select('user_items.*')
.
这篇关于按关系排序列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文