我有Booking
,Status
和User
模型。我还有一个数据透视表booking_status
,其中包含额外的列created_by
,用于跟踪谁更改了预订状态。
当我访问预订状态时,如何获取用户信息:
$booking = App\Booking::first();
$statuses = $booking->history_statuses;
因此,当我在视图中遍历那些statuses
时,我想检索用户名。怎么做?
我知道我可以像访问该字段一样
$status->pivot->created_by
但是随后我得到了用户的ID,因此在视图中按状态获取用户的每种状态并不正确。
答案 0 :(得分:1)
在您的人际关系中使用
public function booking_status(){
return $this->hasMany(booking_status::class)->withPivot('created_by');
}
然后您可以使用
进行访问$booking = App\Booking::first();
$statuses = $booking->history_statuses;
foreach($statuses as $status){
$status->pivot->created_by // this is your element
}
答案 1 :(得分:0)
假设从预订到状态之间存在多对多的关系。现在您要创建一个从枢轴到用户的关系。
我昨天看了两个小时。
我想到的解决方案是从预订到枢纽,再到状态。
像这样的东西应该工作
public function booking_status(){
return $this->hasMany(booking_status::class);
}
public function status(){
return $this->belongsTo(status::class);
}
public function user(){
return $this->belongsTo(status::class);
}
public function booking_status(){
return $this->hasMany(booking_status::class);
}