[英]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.