1

我又遇到了一个我似乎无法理解的问题。我有一个像这样的表单元素:

$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']);
}

只要未设置“禁用”属性,这完全可以正常工作。但是一旦我收到一个验证错误,声称“值是必需的并且不能为空”,即使值是在输入中设置的。

有任何想法吗?

4

1 回答 1

5

disabled 属性完全按照它的说明进行操作。它禁用了 html-form-element。这意味着,当您将表单发送回您的服务/控制器时,该表单字段将不会被发布。

现在我的假设是您不希望用户编辑显示在 EditForm 中的某些数据?在这种情况下,不要使用disabled,最好选择readonly用于显示目的。

在服务器端,只需忽略用户发布的内容。当它是只读的时,数据仍将被发送,并且用户可以使用 browser-dev-tools 进行修改;)

于 2013-08-19T15:49:30.540 回答