Laravel Eloquent для получения родительских, дочерних записей и дочерних записей - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть эти модели со следующими полями, заключенными в скобки.Пользователь может иметь много постов, а пост может иметь много категорий.Как мы можем добиться этого, используя красноречивый laravel.

User   [id, name]
Post   [id, user_id, post_title]
PostType [id,post_id, category_desc]

В пользовательской модели

public function posts(){
    return $this->hasmany('App\Post');
}

В почтовой модели

public function categories(){
   return $this->hasmany('App\PostType');
}

В контроллере

$result = User::with('post')->get();

, которая будет возвращать пользователей су каждого пользователя есть записи поста.Но как добавить категории в набор результатов?

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Альтернативное решение, особенно если вы хотите выводить сообщения и категории сообщений каждый раз, когда вы захватываете пользователя, состоит в использовании массива $ appends в модели User и Post для автоматического извлечения этих отношений при каждом запросе. Например, ваша модель Post будет включать это вверху:

class Post extends Model
{
    $appends = array('categories');
...

И ваша модель пользователя будет выглядеть примерно так:

class User extends Authenticatable
{
    $appends = array('posts');
...

Это автоматически добавит эти категории вместе с сообщениями в любое время, когда вы добавите объект пользователя.

0 голосов
/ 18 сентября 2018

Вы можете включить дистанционные отношения с точечной нотацией:

$result = User::with(['post', 'post.categories'])->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...