2016-11-21 5 views
0

У меня есть вопрос о Laravel Rloquent. Я создал несколько таблиц и моделей, как это ~:Laravel Eloquent Отношение внешних ключей

Trip

  • идентификатор
  • имя
  • пользователя

пользователя

  • идентификатор
  • электронной

Сообщение

  • ID
  • содержание
  • поездка
  • пользователь

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

[ 
    1 => [ 
     'content', 
     'trip' => [ 
      'name' 
     ], 
     'user' => [ 
      'email' 
     ] 
    ] 
] 

Возможно, легко получить все данные?

Мои модели:

// Message.php: 

public function user() 
{ 
    return $this->belongsTo('App\User'); 
} 

public function trip() 
{ 
    return $this->belongsTo('App\Trip'); 
} 

// Trip.php: 

public function user() 
{ 
    return $this->belongsTo('App\User'); 
} 

// User.php: 

public function trips() 
{ 
    return $this->hasMany('App\Trip'); 
} 

public function messages() 
{ 
    return $this->hasMany('App\Message'); 
} 

Мой код

dd(
    User::with([ 
     'sent', 
     'recipient' 
    ])->find(2)->toArray() 
); 

И что я хочу получить:

screen

+0

Как вы просили, чтобы проверить ваш обновленный вопрос с экрана, вы не упомянули о своих '' sent' и recipient' отношений в вашей модели 'User' , Обновите модель 'User' с помощью' sent' и 'recipient'. –

ответ

1

Я считаю, что вы ищете метод загрузки ,

Допустим, у вас есть пользователь

$user->load('messages'); // var_dump($user); 

Если вы vardump ваш объект пользователя, вы увидите соответствующие сообщения были загружены.

+0

Я просто редактирую свой пост, пожалуйста, посмотрите на изображение. –

Смежные вопросы