作者:鱼儿玩玩 | 来源:互联网 | 2013-06-07 16:16
假设我们想要使用一个HTML表单收集输入的model A 和 model B,我们想要显示的输入错误(如果有的话)在同一错误消息盒子显示。我们按照以下代码写:
public function actionCreate() { $a=new A; $b=new B; if(isset($_POST['A'], $_POST['B'])) { // populate input data to $a and $b $a->attributes=$_POST['A']; $b->attributes=$_POST['B']; // validate BOTH $a and $b $valid=$a->validate(); $valid=$b->validate() && $valid; if($valid) { // use false parameter to disable validation $a->save(false); $b->save(false); // ...redirect to another page } } $this->render('create', array( 'a'=>$a, 'b'=>$b, )); }
做为create视图,我们需要写下面的代码,
echo CHtml::form(); ?> //create.php php echo $this->renderPartial('_form', array('a'=>$a,'b'=>$b)); ?> // _form.php php echo CHtml::errorSummary(array($a,$b)); ?> ...input fields for $a, $b...
form>
上述方法我们也可以使用有超过两种model的处理。