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,并在需要时调用。顺便说一句,请查看此以了解更多信息: