Laravel Nova показывает разные метки в зависимости от уровня пользователя - PullRequest
0 голосов
/ 10 апреля 2019

Я знаю о методе метки laravel, который можно использовать для изменения имени ресурса в nav.

Я могу, например, использовать приведенный ниже в моем ресурсе Group вместо отображения «Group» вместоof 'Groups'.

public static function label() {

    return 'Group';

}

Кто-нибудь знает, как я могу определить отображаемую метку на основе чего-то вроде уровня пользователя?

что-то, что я хочу, выглядит примерно так;

public static function label() {

    if($user->level == 'Admin') {

        return 'Groups';

    }

    else {

        return 'Group';

    }

}

Как получить экземпляр пользователя, который я могу использовать внутри функции?

1 Ответ

1 голос
/ 10 апреля 2019

Что вы можете сделать, это использовать auth()->user(), чтобы получить текущий аутентифицированный уровень. Таким образом, ваша функция может выглядеть примерно так:

public static function label()
{
    $user = auth()->user();
    if($user->level == 'Admin') {
        return 'Groups';
    } else {
        return 'Group';
    }
}

Вы должны попытаться увидеть, есть ли какой-либо случай, когда это не удается, если пользователь не аутентифицирован. Вы можете исправить это с помощью такой проверки:

    if(auth()->guest()) {
        return 'Group';
    }

Имейте в виду, что это также изменит заголовок страницы ресурса.

...