#laravel #laravel-nova #laravel-5.8
#laravel #laravel-nova #laravel-5.8
Вопрос:
Я знаю о методе laravel label, который можно использовать для изменения имени ресурса в навигации.
Я могу, например, использовать приведенное ниже на моем групповом ресурсе для отображения ‘Group’ вместо ‘Groups’.
public static function label() {
return 'Group';
}
Кто-нибудь знает, как я мог бы определить метку, которая отображается на основе чего-то вроде уровня пользователя?
я хочу что-то похожее на это;
public static function label() {
if($user->level == 'Admin') {
return 'Groups';
}
else {
return 'Group';
}
}
Как мне получить экземпляр пользователя, который я могу использовать внутри функции?
Ответ №1:
Что вы можете сделать, так это использовать auth()->user()
для получения текущего уровня аутентификации. Итак, ваша функция может выглядеть примерно так:
public static function label()
{
$user = auth()->user();
if($user->level == 'Admin') {
return 'Groups';
} else {
return 'Group';
}
}
Вы должны попытаться выяснить, есть ли какой-либо случай, когда это не удается, если пользователь не прошел проверку подлинности. Вы можете исправить это с помощью такой проверки:
if(auth()->guest()) {
return 'Group';
}
Имейте в виду, что это также изменит заголовок страницы ресурса.
Комментарии:
1. Спасибо. Я не знаю, почему я не подумал использовать auth()-> user(), как обычно, в Laravel. Работает хорошо. Еще раз спасибо.