【问题标题】:Laravel Nova show different label based on user levelLaravel Nova 根据用户级别显示不同的标签
【发布时间】:2019-04-10 09:14:47
【问题描述】:

我知道laravel label方法可以用来改变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】:

    您可以做的是使用auth()->user() 来获取当前的认证级别。所以你的函数可能看起来像这样:

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

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

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

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

    【讨论】:

    • 谢谢。我不知道为什么我没有像在 Laravel 中那样使用 auth()->user() 。工作一种享受。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多