我正在创建一个这样的表单:
$model = new RequestForm;
$form = new CForm('application.views.site.requestForm', $model);
我将表单数据保存到会话中,因此如果用户访问其他具有相似表单的页面,则输入已经填充。 requestForm.php
看起来像这样:
return array(
'showErrorSummary' => false,
'elements' => array(
'first_name' => array(
'type' => 'text',
'class' => 'standard-input',
'value' => Yii::app()->requestFormValues->first_name,
),
)
现在提交表单时出现问题。假设我修改了第一个名字 - 它从会话中获取数据而不是输入中的POST数据。如何在requestForm.php
或requestFormValues
组件中验证表单是否已提交,以便我没有指定默认值?
亲切的问候,
玛丽安
答案 0 :(得分:1)
仅在设置POST时使用默认值。否则,请使用默认
$RequestForm = new RequestForm;
if ( isset( $_POST['RequestForm'] ) ) {
$RequestForm->attributes = $_POST['RequestForm'];
// validate, save or more..
}
else {
$RequestForm->attributes = readFromSession(); //return array
}
这对你有帮助吗?