Преобразование запроса присоединения к базе данных в красноречивые отношения - PullRequest
0 голосов
/ 20 мая 2018

У меня есть следующие функции в моей модели User:

public function getInterests()
{

    return $this->hasMany('App\Interest')->get();

}

public function getGifts()
{

    return DB::table('gifts')
        ->join('sent_gifts', function ($join) {
            $join->on('gifts.id', '=', 'sent_gifts.gift_id')
                ->where('user_2', $this->id);
        })
        ->join('users', function ($join) {
            $join->on('users.id', '=', 'sent_gifts.user_1');
        })
        ->get();

}

Я не мог понять, как создавать сложные Eloquent Relationships, но я хотел бы использовать все преимущества Eloquent ORM, такие какаксессоры и карбоновые экземпляры по датам.

Как мне преобразовать мою getGifts() функцию в красноречивую связь?

PS: у меня уже есть приложение \ пользователь , приложение \ подарок и App \ SentGift модели созданы.

1 Ответ

0 голосов
/ 20 мая 2018

Вы можете использовать как это.Это мои отношения.

Модель пользователя

class User extends Eloquent { 
   protected $table = 'users'; 
   public function posts() { 
     return $this->hasMany('App\Post'); 
   } 
}

Почтовая модель

class Post extends Eloquent { 
  protected $table = 'posts'; 
  public function comments() { 
    return $this->hasMany('App\Comment'); 
  } 
 }

И используйте запрос как следующие..

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