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

0

У меня сводная таблица 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');
    }

}
Теги:
laravel-4

1 ответ

0

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

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

  • 0
    Я получаю неопределенное свойство $ operator_id, когда я делаю это. $ user = User :: find (57); дд ($ user-> operator-> operator_id);
  • 0
    Попробуйте вместо этого $user->operator>id . Вам не нужен префикс operator_ поскольку вы ссылаетесь на модель Operator, а не сводную таблицу.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню