Laravel Pivot отношения - PullRequest
       19

Laravel Pivot отношения

0 голосов
/ 12 февраля 2019

У меня есть Booking, Status и User модели.У меня также есть сводная таблица booking_status с дополнительным столбцом created_by, чтобы отслеживать, кто изменил этот статус бронирования.

Так как я могу получить информацию о пользователе, когда я получаю доступ к статусам бронирования:

$booking = App\Booking::first();

$statuses = $booking->history_statuses;

Поэтому, когда я перебираю эти statuses в представлении, я хотел бы получить имя пользователя.Как это сделать?

Я знаю, что могу получить доступ к этому полю, как

$status->pivot->created_by

Но тогда я получаю идентификатор пользователя, и неправильно выбирать пользователя поидентификатор в представлении для каждого статуса.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

В ваших отношениях используйте

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

}
0 голосов
/ 12 февраля 2019

Предполагая, что существует множество отношений от бронирования к статусу.и теперь вы хотите создать отношение из сводки к пользователю.
Я смотрел на это вчера в течение 2 часов.
Решение, которое я придумал, состояло в том, чтобы перейти от бронирования к сводке и перейти кстатус.
Как-то так должно работать

модель бронирования

public function booking_status(){
    return $this->hasMany(booking_status::class);
}  

модель booking_status

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);
} 
...