2015-09-11 4 views
0

У меня есть две таблицы. Как этоLaravel 5 отношений

**

user_accounts    usersonglists 
--------------    --------------- 
id       id 
username     user_account_id 
slug      etc.. 
etc.. 

** Я создал маршрут, как этот метод

/u/{slug}/songlists 

Это соотношение в модели Список песен Технический райдер

public function userAccounts() 
{ 
    return $this->belongsTo('App\Models\User\UserAccounts','user_account_id','id'); 
} 

Я создал метод контроллера, как это

$songLists = $SongListRepository->getSongListsByUserSlug($slug); 

Это getSongListByUserSlug ($ слизняк) метод

$songList = $this->model->with('userAccounts')->get(); 

Я хочу, чтобы songlists пользователем с $ слизня.

Может кто-нибудь мне помочь?

ответ

0

Вы ищете метод whereHas:

$query = $this->model->with('userAccounts'); 

$query->whereHas('userAccounts', function($query) use ($slug) { 
    $query->where('slug', $slug); 
}) 

$lists = $query->get(); 

Кстати, вы, вероятно, следует переименовать, что userAccounts метод к особой userAccount.


Простой способ может быть, чтобы начать со счета:

$lists = UserAccount::where('slug', $slug)->songLists; 

Предполагая, что вы установили обратную зависимость.

+0

благодарит за ответ. Это работает для меня. :) –

Смежные вопросы