Ответ 1
Попробуйте:
$form = $this->createForm( new SalesEntityType($entity), $entity, [ 'disabled' => true ] );
См.: vendor/symfony/symfony/src/Symfony/Component/Form/CHANGELOG.md, первая строка
Я использую ту же форму для "предварительного просмотра" объекта, поскольку я хочу "отредактировать/обновить" один и тот же объект.
В моем showAction()
для контроллера у меня есть следующий код:
$form = $this->createForm(new SalesEntityType($entity), $entity, array('read_only' => true) );
Этот код отлично подходит для первичной формы, но существует ряд подформ, которые входят в него путем включения. Одним из примеров в show.html.twig является:
{% include 'TargetCommonBundle:Hours:hoursForm.html.twig' with { form: hours } %}
К сожалению, параметр read_only в родительской форме не каскадируется к включенным подформам. Есть ли способ справиться с этим?
Попробуйте:
$form = $this->createForm( new SalesEntityType($entity), $entity, [ 'disabled' => true ] );
См.: vendor/symfony/symfony/src/Symfony/Component/Form/CHANGELOG.md, первая строка
// It is the way more fast to disabled a form
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->setDisabled(true);
}