【发布时间】:2015-09-15 13:21:47
【问题描述】:
我有三个表:
用户 身份证、姓名
订购 身份证,日期
状态 身份证、姓名
并将数据透视表定义为:
order_user order_id、status_id、user_id、created_at
所以“user_id”是数据透视表中的一个额外列。
我的订单模型有:
public function statuses(){
return $this->belongsToMany('Status')->withPivot('user_id')->withTimestamps();
}
我可以通过以下方式访问用户 ID:
Order::find(1)->statuses->pivot->user_id
但不知道如何获取用户“name”?
我可以在 Order 模型的“statuses()”方法中以某种方式“LEFT JOIN”用户表返回吗?
谢谢! 是的
【问题讨论】:
-
我可以在每次迭代中使用
User::find(Order::find(1)->statuses->pivot->user_id)->name,但这似乎很错误......(我必须在刀片模板中使用模型“用户”......) -
如果设置正确你应该可以做到
Order::find(1)->users -
@Yuray 你可以在你的 order_user 模型和 User 模型中添加 belongsTo 关系,这将为你提供用户详细信息。
-
@Jeemusu,你能写下“正确设置”的意思吗? Order模型中应该有另一种方法吗?
-
@jostrohu,现在我没有 order_user 模型...所以我必须为该数据透视表创建一个?
标签: laravel eloquent pivot-table