установить значение по умолчанию для ввода symfony 3 - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь установить значение по умолчанию на входе.Значение отправляется из контроллера в веточку, как показано ниже

ClienteController.php

   $loc_default = $em->getRepository('AppBundle:Localidad')->findOneBy(
            array('nombre' => 'aaaa'));
       $localidad_default = $loc_default;

    return $this->render('cliente/new.html.twig', array(
            'localidad_default' => $localidad_default,
            'form' => $form->createView(),
            'form2' => $form2->createView(),
        ));

, и это мой вид ветки с строкой javascript

  $("#appbundle_cliente_localidad").val({{localidad_default['localidad_default']}});

но он показывает следующую ошибку

Невозможно получить доступ к ключу "localidad_default" на объекте класса "AppBundle \ Entity \ Localidad", который не реализует интерфейс ArrayAccess.

Спасибо за ответ

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

На мой взгляд, это слишком много кода, если контроллер отправляет данные по умолчанию из того же действия, форма отправляется, просто установите значение в форме или контроллере следующим образом:

Внутри формы

/**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('name',TextType::class,[
            'attr'=>[
                'value' => 'some_default_value'
            ]
        ]);
    }

Внутри контроллера

...
$form = $this->createForm('AppBundle\Form\SomeFormType', $data);
$form->get('somefield')->setData('default_data');
...

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

Надеюсь, это поможет!

0 голосов
/ 28 мая 2018

Попробуйте:

$loc_default = $em->getRepository('AppBundle:Localidad')->findOneBy(array(
    'nombre' => 'aaaa')
);
$localidad_default = $loc_default->getSomething();

return $this->render('cliente/new.html.twig', array(
     'localidad_default' => $localidad_default,
     'form' => $form->createView(),
     'form2' => $form2->createView(),
));

И в шаблоне:

$("#appbundle_cliente_localidad").val({{ localidad_default }});

Измените getSomething () на действительный публичный метод вашей сущности Localidad!

Или, если вам нужна вся сущность в шаблоне ветки:

$loc_default = $em->getRepository('AppBundle:Localidad')->findOneBy(array(
    'nombre' => 'aaaa')
);

return $this->render('cliente/new.html.twig', array(
     'localidad_default' => $loc_default,
     'form' => $form->createView(),
     'form2' => $form2->createView(),
));

И в шаблоне:

$("#appbundle_cliente_localidad").val({{ localidad_default.something }});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...