2014-11-23 7 views
0

У меня сводная таблица users_operators. Я хочу захватить operator_id пользователя.Laravel получить данные из сводной таблицы

Вот как я это делаю сейчас, но это кажется многословным.

if (Auth::user()->type === 'operator') { 
    $user = Auth::user(); 

    // There is a better way to do this? 
    $operator_id = $user->operator[0]['pivot']['operator_id']; 

    Session::put('operatorId', $operator_id); 
} 

class Operator extends \Eloquent 
{ 
    public function users() { 
     return $this->belongsToMany('User'); 
    } 

} 

class User extends \Eloquent 
{ 
    public function operator() { 
     return $this->belongsToMany('Operator'); 
    } 

} 

ответ

0

я, борясь с бессонницей и не работает на 100%, но вы должны быть в состоянии уйти с $user->operator->id на основе того, что я интерпретировать ваши модели, чтобы быть (похоже, что вы имели опечатку когда вы скопировали их в вопрос).

Если это не сработает, вы можете ознакомиться с разделом «Динамические свойства» в файле Eloquent docs для получения дополнительной информации, если вы еще этого не сделали.

+0

Im получение неопределенного свойства $ operator_id, когда я это делаю. $ user = Пользователь :: find (57); dd ($ user-> operator-> operator_id); –

+0

Вместо этого попробуйте '$ user-> operator> id'. Вам не нужен префикс 'operator_', поскольку вы ссылаетесь на модель оператора, а не на сводную таблицу. – jakeharris

+0

Неопределенное свойство: Illuminate \ Database \ Eloquent \ Collection :: $ id –

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