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 に答える