Symfony: создание поля формы datetime действительно для чтения

Я отметил поле формы даты и времени как read_only. Поскольку эти швы не имеют эффекта, я отклонил шаблон шаблона по умолчанию. Это прекрасно работает.

{% block datetime_widget %} {% if read_only %} {{ value.date.year }}-{{ value.date.month }}-{{ value.date.day }} {{ value.time.hour }}:{{ value.time.minute }} {% else %} {{ parent() }} {% endif %} {% endblock %} 

Это тип формы, который я использую:

 /** * @ORM\Entity */ abstract class BusinessClass { /** * @ORM\Column(type="datetime") * @var \DateTime */ private $created; /** * @return \DateTime */ public function getCreated() { return $this->created; } } 

И вот как поле datetime добавляется в построитель форм:

 $formBuilder->add('created', 'datetime', array('read_only' => true)); 

Тем не менее, symfony по-прежнему пытается вернуть неизмененное значение в мой тип формы. Поскольку он доступен только для чтения, я только реализовал метод get, но не установил метод. Вот почему я получаю это сообщение об ошибке:

 InvalidPropertyException: Neither element "created" nor method "setCreated()" exists in class "Cinergy\ShopBundle\Tests\Functional\TestBundle\Entity\RecurringProduct" in /Users/ernst/Source/php/cinergy/shop/vendor/symfony/symfony/src/Symfony/Component/Form/Util/PropertyPath.php line 552 at PropertyPath->writeProperty(object(RecurringProduct), 'created', null, false, null) in /Users/ernst/Source/php/cinergy/shop/vendor/symfony/symfony/src/Symfony/Component/Form/Util/PropertyPath.php line 318 at PropertyPath->setValue(object(RecurringProduct), null) in /Users/ernst/Source/php/cinergy/shop/vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Core/DataMapper/PropertyPathMapper.php line 74 at PropertyPathMapper->mapFormsToData(array('created' => object(Form), 'duration' => object(Form), 'id' => object(Form), 'name' => object(Form), 'price' => object(Form), 'sku' => object(Form), 'updated' => object(Form), '__entity' => object(Form), '__id' => object(Form)), object(RecurringProduct)) in /Users/ernst/Source/php/cinergy/shop/vendor/symfony/symfony/src/Symfony/Component/Form/Form.php line 569 at Form->bind(object(Request)) in /Users/ernst/Source/php/cinergy/shop/src/Cinergy/DaylightBundle/Controller/BrowserController.php line 123 at BrowserController->updateAction(object(Request)) at call_user_func_array(array(object(BrowserController), 'updateAction'), array(object(Request))) in /Users/ernst/Source/php/cinergy/shop/src/Cinergy/CommonBundle/EventListener/TransactionWrapper.php line 34 at TransactionWrapper->wrappedExecution(object(Request)) at call_user_func_array(array(object(TransactionWrapper), 'wrappedExecution'), array(object(Request))) in /Users/ernst/Source/php/cinergy/shop/app/bootstrap.php.cache line 1426 at HttpKernel->handleRaw(object(Request), '1') in /Users/ernst/Source/php/cinergy/shop/app/bootstrap.php.cache line 1390 at HttpKernel->handle(object(Request), '1', true) in /Users/ernst/Source/php/cinergy/shop/app/bootstrap.php.cache line 1566 at HttpKernel->handle(object(Request), '1', true) in /Users/ernst/Source/php/cinergy/shop/app/bootstrap.php.cache line 617 at Kernel->handle(object(Request)) in /Users/ernst/Source/php/cinergy/shop/web/app_dev.php line 28 

Поскольку это часть моей бизнес-логики, я не хочу реализовывать метод setCreate. Также упоминается, что одно и то же прекрасно работает для текстовых полей.

Любые идеи о том, как я могу остановить symfony от установки значения, если read_only параметр read_only ?