yii 一个表单提交多个模型数据
来源:互联网 发布:mac动态桌面壁纸软件 编辑:程序博客网 时间:2024/04/27 21:03
正在需要的时候发现了这个大牛的博文,动手实践过后,记录在此。
(原文在此)
--user表Create Table: CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(45) DEFAULT NULL, `userpass` varchar(45) DEFAULT NULL, `profile_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `fk_msjy_user_1_idx` (`profile_id`), CONSTRAINT `profile_id` FOREIGN KEY (`profile_id`) REFERENCES `msjy_profile` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8--profile表Create Table: CREATE TABLE `msjy_profile` ( `id` int(11) NOT NULL AUTO_INCREMENT, `status` tinyint(4) DEFAULT NULL, `address` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8
接下来,gii生成user和profile模型
然后gii生成RegisterController并整理成如下:
class RegisterController extends Controller{public function actionIndex(){$this->render('index');}public function actionCreate() { $modelA = new User; $modelB = new Profile; if(isset($_POST['User']) && isset($_POST['Profile'])) { $modelA->attributes=$_POST['User']; $modelB->attributes=$_POST['Profile']; if($modelA->validate() && $modelB->validate()) { if ($modelB->save(false)) { $modelA->profile_id = $modelB->id; if ($modelA->save(false)) { $this->redirect(array('User/view','id'=>$modelA->id)); } } } } $this->render('create',array( 'modelA'=>$modelA, 'modelB'=>$modelB, )); }}
在views里的register包里创建
--create.php <?php echo $this->renderPartial('_form', array('modelA'=>$modelA,'modelB'=>$modelB)); ?>_form.php另外,关于create方法里的验证,原文有说明,此处省略文字若干。。。。。<?php $form=$this->beginWidget('CActiveForm', array( 'id'=>'User-form', 'enableAjaxValidation'=>false,)); ?>Fields with * are required.
<?php echo $form->errorSummary(array($modelA,$modelB)); ?>//注意这里<?php echo $form->labelEx($modelA,'username'); ?> <?php echo $form->textField($modelA,'username'); ?> <?php echo $form->error($modelA,'username'); ?><?php echo $form->labelEx($modelA,'userpass'); ?> <?php echo $form->textField($modelA,'userpass'); ?> <?php echo $form->error($modelA,'userpass'); ?><?php echo $form->labelEx($modelB,'status'); ?> <?php echo $form->textField($modelB,'status'); ?> <?php echo $form->error($modelB,'status'); ?><?php echo $form->labelEx($modelB,'address'); ?> <?php echo $form->textField($modelB,'address'); ?> <?php echo $form->error($modelB,'address'); ?><?php $this->endWidget(); ?>
- yii 一个表单提交多个模型数据
- YII存诸一个表单的数据到多个模型内
- 一个表单设置多个提交情况
- 一个表单设置多个提交情况
- 一个表单form 多个action提交
- 一个表单中提交多个按钮
- 一个表单多个按钮提交
- Jquery 一个表单多个提交按钮
- Yii一个form提交两个model数据
- yii表单提交
- Yii的表单提交
- yii的多个相同modle表单提交问题(未解决)
- yii 表单提交数据的方式——总结
- ASP中一个页面多个表单的提交
- Action一个表单对应多个提交按扭
- 一个Form表单处理提交多个submit按钮
- 一个form表单实现多个提交按钮
- 一个form表单实现提交多个action
- Android Sqlite数据库中Sqlite3命令的使用
- 宏与内联函数(面试常考)
- 秋雨寄相思
- HttpSessionBindingListener接口介绍
- 字符串md5加密
- yii 一个表单提交多个模型数据
- lsof命令
- Android 百度地图 定位
- 进程间通信——共享内存
- DEVICE_ATTR实例分析
- imx122,GM真烦人
- 家乡的小河
- adb 命令之 终极解决
- URLDownloadToFile 实现进度条(IBindStatusCallback)