У меня есть несколько вложенных отношений. Ниже приведены мои модели: Post, Thread и BookPage.и их взаимоотношения:
Публикация
class Post extends Model
{
public function thread(){
return $this->belongsTo('App\Thread');
}
}
Тема
class Thread extends Model
{
public function bookPage(){
return $this->belongsTo('App\BookPage');
}
public function posts(){
return $this->hasMany('App\Post');
}
}
BookPage
class BookPage extends Model
{
public function threads(){
return $this->hasMany(App\Threads);
}
}
теперь я хотел получать сообщения с книжными страницами и темами, но только в некоторых полях можно указать только название темы и заголовок страницы
Я читал о восстановлении отношений, и я поступаю точно так же, как объясненов документах, но вот моя проблема:
Когда я получаю сообщения с отношениями без указания полей, я получаю хорошие результаты:
Запрос:
$posts = Post::with('thread.bookpage:id,title)->get();
return $posts->toArray();
Результат:
но когда я указываю поля для обоих, то есть поля для страницы книги, а также поля для темы iЯ получаю закладку как ноль.Я могу получить определенные поля для одного отношения только для страницы книги или для темы.Я пытался сделать запрос следующими способами:
$posts = Post::with('thread.bookpage:id, ...')->get();
//thread:all fields, bookpage:specified fields
$posts = Post::with('thread.bookpage', 'thread:id, ...')->get();
//thread:specified fields, bookpage:bull
Вот результат, если я попытался указать поля для обоих:
так как можноя получаю конкретные поля только из отношения и его вложенного отношения?