【发布时间】:2016-11-10 17:18:12
【问题描述】:
我有以下疑问:
$items = UserItems::with('item')
->where('user_id','=',$this->id)
->where('quantity','>',0)
->get();
我需要按 item.type 订购,所以我尝试了:
$items = UserItems::with('item')
->where('user_id','=',$this->id)
->where('quantity','>',0)
->orderBy('item.type')
->get();
但我得到Unknown column 'item.type' in 'order clause'
我错过了什么?
【问题讨论】:
-
你的表是命名为item还是items?我的猜测是你的关系被称为 item 但表格是 items 所以它应该是
orderBy('items.type') -
我都试过
Column not found: 1054 Unknown column 'items.type' in 'order clause' -
看你的查询日志,你的主查询和关系是分开的,没有交叉。您可能需要进行某种类型的连接才能按这样的另一个表排序。
-
这可能是因为
with()正在使用急切加载,这会将其变成两个查询。尝试使用join()而不是with()