Почему бы вам не сделать что-то подобное?
В вашей пользовательской модели установите два типа отношений:
public function chatsFrom() {
return $this->hasMany('App\Chat', 'from_id');
}
public function chatsTo() {
return $this->hasMany('App\Chat', 'to_id');
}
Затем в вашей модели чата также настройтедва отношения, одно к from
и другое к to
, оба ссылаются на модель пользователя. Например:
public function fromUser() {
return $this->belongsTo('App\User', 'from_id');
}
public function toUser() {
return $this->belongsTo('App\User', 'to_id');
}
Таким образом, вы можете получить доступ к отношениям, используя что-то вроде этого:
$user->chatsFrom();
$user->chatsTo();
$chat->fromUser();
$chat->toUser();
Дайте мне знать, помогло ли это вам.