我又遇到了一个我似乎无法理解的问题。 我有一个像这样的表单元素:
$this->add(array(
'type' => 'datetime',
'name' => 'modifiedTime',
'options' => array(
'label' => 'Modified Time',
),
'attributes' => array(
'disabled' => 'disable',
),
));
这个通过我的实体(我正在使用学说)正确填充:
/**
* @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']);
}
只要未设置“禁用”属性,此工作就完全正常。但是一旦我得到验证错误声称“值是必需的且不能为空”事件,则在输入中设置值。
任何想法?
答案 0 :(得分:5)
disabled属性完全符合它的含义。它禁用了html-form-element。这意味着,当您将表单发送回服务/控制器时,该表单字段将不发布。
现在我的假设是您不希望用户编辑EditForm中显示的某些数据?在这种情况下,请勿使用disabled
,最好选择readonly
进行显示。
在服务器端,只需忽略用户发布的内容即可。就像它只读时一样,数据仍然会被发送,并且可以由用户使用browser-dev-tools进行修改;)