繁体   English   中英

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

[英]Yii2 - validate field from model in main.php file

我有一个名为user的表,并且在其中有一个名为estatuto的字段。

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

我的问题是签入:

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

如果用户使用estatuto == admin登录,并且仅在这种情况下显示admin超链接。

我只能检查用户是否为访客。

我需要类似的东西:

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

我搜索了很多东西,但唯一看不到的是通过:

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

但是也许还有另外一种方法。

有人可以帮助我解决这个问题吗?

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

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

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

然后,只要在会话中调用该值即可。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM