Как показывать только ссылки в навигационной панели в зависимости от роли с laravel / blade

У меня есть навигационная панель, и я не хочу показывать каждую ссылку всем пользователям, некоторые ссылки только для администратора.

в моем navbar.blade я получил это заявление if:

@if(Auth::user()->priveleges->admin)
<li><a href="{{ url('/priveleges/create') }}">Priveleges</a></li>
@endif

Привилегии — это таблица, относящаяся к моей пользовательской таблице, и в ней есть строка admin (логическое значение)

С этим кодом я получаю ошибку: пытаюсь получить свойство не-объекта

Я также получил функцию в моей пользовательской модели, которую я теперь использую для промежуточного программного обеспечения, чтобы проверить, является ли пользователь администратором. Эта часть работает, хотя

public function isAAdmin()
{
if(Auth::user()->priveleges){
if(Auth::user()->priveleges->admin === 1){
return true;
}
}

return false;
}

Я пытался вызвать эту функцию в navbar, но не работает.

надеюсь, кто-нибудь может помочь

0

Решение

Лучше всего, если вы используете авторизацию Laravel.
Для этого следуйте официальной документации http://laravel.com/docs/5.1/authorization
или следуйте этому видео Laracast https://laracasts.com/series/whats-new-in-laravel-5-1/episodes/13

0

Другие решения

Трудно сказать, но следующая ошибка:

Trying to get property of non-object

Обычно происходит, когда возвращаемое значение является массивом, но вы не получаете данные правильно.

Если вы до сих пор не получили этого, вы можете использовать has()метод. Или даже лучше whereHas() метод. Эти методы, вероятно, будут полезны в будущем, так как они облегчат вашу жизнь при попытке запросить отношения.

Официальный документ

0

По вопросам рекламы [email protected]