У меня есть три таблицы, таблица пользователей, таблица документов и таблица избранного.Идея состоит в том, что пользователь может добавить документ в избранное, но я не могу понять, как лучше всего сделать запрос с помощью Eloquent.
User.php
class User extends Authenticatable
{
public function documents()
{
return $this->hasMany('App\Document');
}
public function favourites()
{
return $this->hasMany('App\Favourite');
}
}
Document.php
class Document extends Model
{
public function user()
{
return $this->belongsTo('App\User');
}
}
Favourite.php
class Favourite extends Model
{
public function user()
{
return $this->belongsTo('App\User');
}
public function document()
{
return $this->belongsTo('App\Document');
}
}
Любимая таблица представляет собой простую таблицу из 2 столбцов с user_id и document_idсвязывание каждого пользователя с любимой статьей.
Теперь я могу использовать метод для получения избранных статей пользователей, например, так:
App\User::with('favourites')->find(1);
Проблема в том, что это возвращает два идентификатора из таблицы избранного, когда я хочу получить данные изтаблица документов, такая как заголовок и идентификатор документа.
Похоже, что для выполнения этого запроса мне может понадобиться отношение "имеет много сквозных", но я не уверен, как его реализовать вэтот вариант использования или даже если отношение «имеет много сквозных» является правильным способом сделать это?