Forms Yii表单元素默认值

Forms Yii表单元素默认值,forms,yii,Forms,Yii,我正在创建这样一个表单: $model = new RequestForm; $form = new CForm('application.views.site.requestForm', $model); return array( 'showErrorSummary' => false, 'elements' => array( 'first_name' => array( 'type' => 'text', 'class' =>

我正在创建这样一个表单:

$model = new RequestForm;
$form = new CForm('application.views.site.requestForm', $model);
return array(

 'showErrorSummary' => false,

 'elements' => array(
  'first_name' => array(
    'type' => 'text',
    'class' => 'standard-input',
    'value' => Yii::app()->requestFormValues->first_name,
  ),
)
我将表单数据保存到一个会话中,这样,如果用户访问其他一些有类似表单的页面,输入就已经被填充了
requestForm.php
看起来像这样:

$model = new RequestForm;
$form = new CForm('application.views.site.requestForm', $model);
return array(

 'showErrorSummary' => false,

 'elements' => array(
  'first_name' => array(
    'type' => 'text',
    'class' => 'standard-input',
    'value' => Yii::app()->requestFormValues->first_name,
  ),
)
现在,当我提交表单时,问题就出现了。假设我修改了名字——它从会话中获取数据,而不是从输入中获取POST数据。在
requestForm.php
requestFormValues
组件中,如果表单已提交,我如何验证,以便不指定默认值

亲切问候,


Marian

仅在设置POST时使用默认值。否则,使用默认值

$RequestForm = new RequestForm;
if ( isset( $_POST['RequestForm'] ) ) {
    $RequestForm->attributes = $_POST['RequestForm'];
    // validate, save or more..
}
else {
    $RequestForm->attributes = readFromSession(); //return array
}

这对您有帮助吗?

仅在设置POST时使用默认值。否则,使用默认值

$RequestForm = new RequestForm;
if ( isset( $_POST['RequestForm'] ) ) {
    $RequestForm->attributes = $_POST['RequestForm'];
    // validate, save or more..
}
else {
    $RequestForm->attributes = readFromSession(); //return array
}

这对您有帮助吗?

不确定这是否能解决您的问题,但我认为
setFlash
getFlash
可能会对您有所帮助。发布表单时,将变量设置为flash message,并在需要时调用。顺便说一句,查看此以了解更多信息:不确定这是否能解决您的问题,但我认为
setFlash
getFlash
可能会对您有所帮助。发布表单时,将变量设置为flash message,并在需要时调用。顺便说一句,请查看此以了解更多信息: