CakePHP:当表单没有验证时,表单中的数据如何仍然存在?
使用CakePHP创建表单元素时,如下所示:
echo $this->Form->input('User.first_name');
你从一个空白字段开始。当您输入您的姓名John
并提交表单时,如果表单未验证,当您返回页面以修复验证错误时,名称John
仍然存在。这很方便,因为您可以修复错误,而无需重新键入正确的部分。
如何将其作为价值回归?
我需要知道这一点,因为一旦表单成功提交并且您离开页面并返回,表单将再次为空白。
我将名称保存为会话,所以我可以这样做:
$first_name = $this->Session->read('Cart.User.first_name');
echo $this->Form->input('User.first_name',array('value'=>$first_name));
现在,如果您浏览页面并返回,该名称仍将存在,但这会打破原始逻辑,阻止它在表单无法验证时将您键入的内容放回去。
让我给你举个例子。
我正在创建我的名字元素:
$first_name = $this->Session->read('Cart.User.first_name');
echo $this->Form->input('User.first_name',array('value'=>$first_name));
我正确填写表格,然后进入最后的结帐页面。我看到我拼错了我的名字Jhon
。所以我点击了编辑按钮并返回到表单,因为我在表单中手动设置了value
,我的数据仍然存在。我正确地将我的名字改为John
并提交表格。由于某些其他原因,表单没有验证,我被带回到表单,但不是像原来那样显示John
,它现在再次显示Jhon
,因为当我手动设置value
时,我将覆盖默认情况下仍然存在的内容会话。
因此,如果我知道CakePHP在未验证时如何将数据放回到表单中,我可以以相同的方式返回会话数据,而不会覆盖默认值。
没有找到相关结果
已邀请:
1 个回复
舞备联