在我的Yii应用程序中,我希望我的授权层次结构和业务规则是用代码编写的,我希望将用户,角色和权限存储在数据库中.这将我的业务逻辑(应该是代码)从应该使用的信息(应该是数据)中分离出来.看来Yii不支持这个.
在Yii中,您可以选择将业务逻辑放入文件(CPHPAuthManager)或数据库(CdbAuthManager)中.无论如何,您将业务逻辑视为数据; Yii实际上将检索您的业务逻辑作为字符串,然后通过eval运行它,这似乎是一个可怕的方式来做到这一点.
这是什么原因?
如何达到我想要的结果?
您可以将所需的逻辑尽可能多地放入您的业务逻辑的
PHP代码中. Yii支持许多添加逻辑的方法,例如. LoginForm.PHP,UserIdentity.PHP,SiteController.PHP,…您不限于此.
原文链接:https://www.f2er.com/php/131300.htmlYii还支持的是向您的RBAC添加一个逻辑片段.一个常见的用例是,默认情况下,您将两个规则“Authenticated”和“Guest”分配给您的网站的所有用户,但使用bizRules.
“Authenticated”有一个bizRule
return !Yii::app()->user->isGuest;
‘Guest’有
return Yii::app()->user->isGuest;
结果是,您的登录用户不再是“客人”,而是“已验证”.
另一个例子是用户配置文件的编辑视图,这些配置文件只能由当前用户编辑,如
return $model->id === Yii::app()->user->id;