ease 2012-02-23 08:55:00 3608次浏览 2条回复 0 0 0

请教下: 如何在一个控制器的视图代码里,用 $this->renderPartial() 方法渲染另外一个控制器的视图? 比如我想在 order/create 这个动作的视图里面:判断用户是否登录,如果没有登录,则渲染 注册窗口。 也就是渲染 site 控制器的 rigister 视图

  • 回复于 2012-02-23 13:39 举报
    if(Yii::app->user->isGuest){
        $this->renderPartial(site/rigister);
    }else{
        $this->renderPartial(order/create);
    }
    

    但是我建议你使用accessRules来过滤用户,没登录的用户自动跳转到site/login

    public function accessRules()
    {
        return array(
            array('allow',  // allow all users to perform 'list' and 'show' actions
                'actions'=>array('index', 'view'),
                'users'=>array('*'),
            ),
            array('allow', // allow authenticated users to perform any action
    'actions'=>array('admin', 'delete','create),//只有登录用户可以访问的action
                'users'=>array('@'),
            ),
            array('deny',  // deny all users
                'users'=>array('*'),
            ),
        );
    }
    
  • 回复于 2012-02-23 14:41 举报

    $this->renderPartial(/aaa/bb),
    其中aaa是文件夹的名字
    bb 是视图页面的的名字

您需要登录后才可以回复。登录 | 立即注册