在yii中创建嵌套表单
接下来,我尝试创建一个注册表单,并将表单连接到表“user”和“profile”。在我的控制器中,我复制了相同的代码,如下所示:在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
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',!!!)提供一个模型;