我正在使用Yii框架,而CDbAuthManager类则用于授权用户。 对于检查,一个访问可以使用此代码:
Yii::app()->user->checkAccess('post');
此代码执行db查询,它位于后台:
SELECT * FROM `auth_item` WHERE name='post'
现在如果我检查其他访问权限,则执行另一个数据库查询:
Yii::app()->user->checkAccess('comment');
SELECT * FROM `auth_item` WHERE name='comment'
现在,如果我需要检查许多访问权限,那么执行许多数据库查询。 现在,我如何检查多路访问,以便只执行单个查询db。 例如,我希望代码是这样的:
Yii::app()->user->checkAccess(array('post', 'comment'));
也许执行就像这个查询:
SELECT * FROM `auth_item` WHERE name IN ('post', 'comment');
有什么想法吗?!
答案 0 :(得分:0)
我认为以下代码可能适合您
Yii::app()->user->checkAccess('name', array('post', 'comment'))
答案 1 :(得分:0)
我找到了一个解决方案,并在此处为其编写了一个组件:http://www.yiiframework.com/extension/auth-component/