Laravel получает данные из сводной таблицы

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

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

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');
 }

}
1 ответ

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

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

licensed under cc by-sa 3.0 with attribution.