我的数据库中有一个名为messages
的表,它有5列,分别是:
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
呢?
答案 0 :(得分:1)
要拥有一个集合,您必须使用->get()
方法。否则,您将拥有关系对象,并且无法合并它们;)