簡體   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