Laravel Nova根据用户级别显示不同的标签

问题描述 投票:0回答:1

我知道laravel标签方法可用于更改nav中资源的名称。

例如,我可以在我的群组资源上使用以下内容来显示“群组”而不是“群组”。

public static function label() {

    return 'Group';

}

有谁知道如何根据用户级别定义显示的标签?

我想要的是看起来像这样的东西;

public static function label() {

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

        return 'Groups';

    }

    else {

        return 'Group';

    }

}

如何获取我可以在函数内使用的用户实例?

laravel laravel-nova laravel-5.8
1个回答
1
投票

你可以做的是使用auth()->user()来获得当前的身份验证级别。所以你的函数看起来像这样:

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

如果用户未经过身份验证,您应该尝试查看是否存在失败的情况。您可以通过这样的检查来解决这个问题:

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

请记住,这也将更改资源页面的标题。

© www.soinside.com 2019 - 2024. All rights reserved.