请教个问题,关于用CActiveForm提交数据 [ 新手入门 ]
我理解的流程是这样的:
- 浏览器地址栏url是“.......entity/create”
- entityController 执行 actionCreate函数
public function actionCreate() {
$model = new Entity;
if (isset($_POST['Entity'])) {
$model->setAttributes($_POST['Entity']);
if ($model->save()) {
if (Yii::app()->getRequest()->getIsAjaxRequest())
Yii::app()->end();
else
$this->redirect(array('view', 'id' => $model->guid));
}
}
$this->render('create', array( 'model' => $model));
}
上面actionCreate函数创建的 $model 被传递到 create.php
- create.php代码如下
<?php
$this->renderPartial('_form', array(
'model' => $model,
'buttons' => 'create'));
?>
$model 被传递到 _form.php
- _form.php 代码如下
<?php $form = $this->beginWidget('CActiveForm', array(
'id' => 'entity-form',
'enableAjaxValidation' => false,
));
?>
//.........
<div class="row">
<?php echo $form->labelEx($model,'description'); ?>
<?php echo $form->textArea($model, 'description'); ?>
<?php echo $form->error($model,'description'); ?>
</div><!-- row -->
//...........
<?php
echo CHtml::submitButton(Yii::t('app', '提交'));
$this->endWidget();
?>
- 点击提交按钮后,entityController中的actionCreate再次执行,将 $model 中的数据保存到数据库。
如上面的流程描述,$model是在create页面打开时就已经被创建了,然后通过create.php一直传递到 _form.php,提交时再传回到actionCreate函数里并且保存到数据库。 这个流程理解的对么?
然后我有一个问题:
如果打开的页面不是entityController中actionCreate函数所渲染的页面(create.php),但是在这个页面(test.php)中,我写了:
<?php $form = $this->beginWidget('CActiveForm', array(
'id' => 'entity-form',
'action'=>'entity/create'
'enableAjaxValidation' => true,
));
?>
//.............
<div class="row">
<?php echo $form->labelEx($model,'description'); ?> //这个$model在哪定义?
<?php echo $form->textArea($model, 'description'); ?> //这个$model在哪定义?
<?php echo $form->error($model,'description'); ?> //这个$model在哪定义?
</div><!-- row -->
//....................
<?php
echo CHtml::submitButton(Yii::t('app', 'Save'));
$this->endWidget();
?>
像这样,我提交表单时,就应该把数据提交到entityController的actionCreate函数,然后数据就能被保存到数据库了。 可是事实上,这个test.php中的 $model 并不是由entityController中的actionCreate函数传递来的。 那我这个 $model 要在那里定义呢?在test.php里定义么?
共 3 条回复
aslan
注册时间:2012-04-03
最后登录:1970-01-01
在线时长:0小时0分
最后登录:1970-01-01
在线时长:0小时0分
- 粉丝0
- 金钱25
- 威望0
- 积分25