Symfony 1.4 embedRelation unset Поле (я) - PullRequest
       13

Symfony 1.4 embedRelation unset Поле (я)

1 голос
/ 08 декабря 2010

Я вижу, что в параметрах embedRelation вы можете передать класс формы, поэтому я предположил, что могу просто установить новую форму и изменить ее по своему усмотрению, а затем передать ее как класс embedRelation и вуаля, чтобы моя форма выглядела / действовала какжелание.Не тот случай, так как мне это сделать!?

Пример из magicForm.class.php:

function configure()
{
    $magicForm = new magicForm();
    unset($magicForm['fieldName']);
    $this->embedRelation('Magic',$magicForm);
}

Я ожидаю, что это будет включать в себя изящную формуМИНУС поля 'fieldName', но это не так, вся форма встраивается без изменений.

Итак, как мне настроить форму перед ее внедрением и не использовать embedForm, для которой приведенный выше пример отлично работает?

1 Ответ

1 голос
/ 08 декабря 2010

embedRelation принимает имя класса Form, а не экземпляр самой формы, а затем в основном выполняет все необходимые действия по созданию экземпляра класса tht и его настройке.Если вы хотите изменить форму после этого, вам нужно сделать это путем доступа к различным объектам схемы, таким как:

function configure()
{

    $this->embedRelation('Magic','magicForm');

    unset($this['Magic']['fieldName']);

    $this->getEmbeddedForm('Magic')
      ->widgetSchema['anotherField']
      ->setOption('class', 'some_class');
   //etc..

}

Для чего стоит я никогда не использую встраиваемое отношение ... я просто делаю это с embedForm как вы упомянули.

...