cpt*_*tnk 1 zend-validate zend-framework2
我再次遇到一个我似乎无法理解的问题.我有一个这样的表单元素:
$this->add(array(
'type' => 'datetime',
'name' => 'modifiedTime',
'options' => array(
'label' => 'Modified Time',
),
'attributes' => array(
'disabled' => 'disable',
),
));
Run Code Online (Sandbox Code Playgroud)
通过我的实体(我正在使用学说),这个确实被正确填充:
/**
* @ORM\Column(type="datetime", nullable=true, name="modified_time")
*
* @Form\Exclude()
*/
protected $modifiedTime;
public function getModifiedTime(){
return $this->modifiedTime;
}
public function populate($data)
{
$this->modifiedTime = date_create($data['modifiedTime']);
}
Run Code Online (Sandbox Code Playgroud)
只要未设置"禁用"属性,此工作就完全正常.但是一旦我得到验证错误声称"值是必需的并且不能为空"事件,则在输入中设置值.
有任何想法吗?
disabled属性完全符合它所声明的内容.它禁用了html-form-element.这意味着,当您将表单发送回服务/控制器时,该表单字段将不会发布.
现在我的假设是您不希望用户编辑EditForm中显示的某些数据?在这种情况下,请不要使用disabled,更好地选择readonly显示目的.
在服务器端,只需忽略用户发布的内容即可.当它只读时,数据仍然会被发送,并且可以由用户使用browser-dev-tools进行修改;)