在YII中创建仅限管理员的表单?

在YII中创建仅限管理员的表单?,yii,Yii,我知道如何创建标准表单,就像您创建联系人表单或任何其他用户输入表单一样。但是,我希望创建一个表单,允许用户在我们的网站上创建“产品”。问题是,此表单只能由管理员访问。如何限制这一点?为什么不检查其主控制器中的rbac?大概是这样的: class SomeController extends Controller { public function filters() { return array( 'accessControl',

我知道如何创建标准表单,就像您创建联系人表单或任何其他用户输入表单一样。但是,我希望创建一个表单,允许用户在我们的网站上创建“产品”。问题是,此表单只能由管理员访问。如何限制这一点?

为什么不检查其主控制器中的rbac?大概是这样的:

class SomeController extends Controller {
   public function filters()
    {
        return array(
            'accessControl',
        );
    }

    public function accessRules()
    {
        return array(
            array('allow',
                'actions' => array('actions_with_public_access'),
                'users' => array('*'),
            ),
            array('allow',
                'actions' => array('action_with_form'),
                'roles' => array('admin')

            ),
            array('deny',
                'users' => array('*'),
            ),
        );
    }

}
public function YourAdminOnlyController(){
   public function init(){
     if(Yii::app()->user->checkAccess('your_role_admin')){
     }else
     $this->redirect(array('/site/message','txt'=>'access denied. only admins.'));
   }
}

这是一种简单的方法,可能不使用init(),但我的目的是传达主要思想您也可以简单地使用访问控制规则来实现这一点

为什么不检查其主控制器中的rbac?大概是这样的:

public function YourAdminOnlyController(){
   public function init(){
     if(Yii::app()->user->checkAccess('your_role_admin')){
     }else
     $this->redirect(array('/site/message','txt'=>'access denied. only admins.'));
   }
}
这是一种简单的方法,可能不使用init(),但我的目的是传达主要思想您也可以简单地使用accessControl规则来实现这一点