在yii中创建嵌套表单

在yii中创建嵌套表单,yii,formbuilder,yii-cformmodel,yii-cform,Yii,Formbuilder,Yii Cformmodel,Yii Cform,接下来,我尝试创建一个注册表单,并将表单连接到表“user”和“profile”。在我的控制器中,我复制了相同的代码,如下所示: public function actionRegistration() { $form = new CForm('application.views.user.registerForm'); $form['user']->model = new Users; $form['profile']->model = new Profil

接下来,我尝试创建一个注册表单,并将表单连接到表“user”和“profile”。在我的控制器中,我复制了相同的代码,如下所示:

public function actionRegistration()
{
    $form = new CForm('application.views.user.registerForm');
    $form['user']->model = new Users;
    $form['profile']->model = new Profile;
    if($form->submitted('register') && $form->validate())
    {
        $user = $form['user']->model;
        $profile = $form['profile']->model;
        if($user->save(false))
        {
            $profile->userID = $user->id;
            $profile->save(false);
            $this->redirect(array('/user/login'));
        }
    }

    var_dump($form->submitted('register'));


    $this->render('registration', array('form'=>$form));
}
我实际上不知道$form->submitted('register')是为了什么,为什么它返回false


谁能解释一下这是什么?传递给提交函数的“寄存器”值是什么!?还有为什么在发布表单时返回false?

获取表单数据的传统方法是

$model = new User;
if(isset($_POST["register"])){    //get the form data
  ...
  $model->attributes=$_POST["register"];  //set model's attributes
 ...
}

有关更多示例,您可以这样做:

还应该向CForm构造函数$form=new CForm('application.views.user.registerForm',!!!)提供一个模型;