Я очень плохо знаком с использованием сводных таблиц в Laravel, мои приложения никогда не были слишком сложными. Вот моя проблема.
Я настроил новый тестовый сайт, он имеет 3 таблицы.
пользователи
роли
USER_ROLE
В модели User я определил отношения с моделью Role как:
public function roles()
{
return $this->belongsToMany('App\Role');
}
Хорошо, так что это должно быть достаточно просто, подумал я. Прежде всего, аутентификация пользователя проста
Auth::user();
Сохраняя это очень простым, все, что я действительно хочу сделать, это отобразить роль или роли, которые есть у пользователя. Если я поставлю это в виде:
Aith::user()->roles;
Я получаю следующий результат
[{"id":"7","name":"Administrator","created_at":"2015-03-19 00:14:53","updated_at":"2015-03-19 00:14:53","pivot":{"user_id":"1","role_id":"7"}}]
Теперь это на месте, однако мне нужно будет звучать совершенно глупо. Как мне заставить его вернуть имя роли?
Вместо приведенного выше результата я просто хочу, чтобы он отображался:
Administrator
Ничего более.
либо это чтобы получить первую запись
Auth::user()->roles->first()->name
или используйте цикл
@foreach(Auth::user()->roles as $role)
{{ $role->name }}
@endforeach
Других решений пока нет …