Невозможно объединить две коллекции Eloquent - PullRequest
0 голосов
/ 11 января 2019

В моей базе данных есть таблица с именем messages, в которой пять столбцов:

id | sender_id | receiver_id | message | sent_at

И в моей модели User у меня есть функция, которая выглядит следующим образом:

    public function messages(){

      $sent_messages = $this->hasMany(Message::class, "sender_id");

      $received_messages = $this->hasMany(Message::class, "receiver_id");

      $messages = $sent_messages->merge($received_messages);

      return $messages;

    }

Я полагал, что это будет работать, но это не так. Я получаю ошибку:

BadMethodCallException with message 'Call to undefined method Illuminate/Database/Query/Builder::merge()'

Итак, что я сделал не так и что я могу сделать, чтобы получить все messages, если оно либо отправлено мной, либо получено мной?

1 Ответ

0 голосов
/ 11 января 2019

Чтобы иметь коллекцию, вы должны использовать метод ->get(). В противном случае у вас есть объекты отношений, и вы не можете их объединить;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...