Yii2-验证main.php文件中模型的字段


Yii2 - validate field from model in main.php file

我有一个名为user的表,其中有一个称为estauto的字段

只有estauto==admin的用户才能在main.php文件中的NavBar小部件中看到admin超链接。

我的问题是办理登机手续:

'label' => 'Admin', 'visible' => !Yii::$app->user->isGuest,

如果用户使用estauto==admin登录,并且只有在这种情况下才会显示admin超链接。

我只能检查用户是否为Guest。

我需要类似的东西:

'label' => 'Admin', 'visible' => !Yii::$app->user->isGuest && User::estatuto = 'admin',

我搜索了很多,唯一看到但无法理解的是:

$this->view->params['customParam'] = 'customValue';

但也许还有另一个机会。

有人能帮我解决这个问题吗

您的任务不是验证模型字段,而是经典的权限管理任务。所以您应该使用Yii2 RBAC功能。在这种情况下,你可以这样检查权限:

'Yii::$app->user->can('viewAdminMenu')

当用户登录时,将estauto的值存储在会话中。

然后在任何时候都可以从会话中调用该值。

也不要设置访问的可见标记。如果不是管理员,则不需要显示整个链接。此外,仅仅隐藏链接是不够的,您还需要检查控制器内的访问权限。

更好的方法是使用基于角色的访问控制(RBAC)。