Эти опции передаются типу поля, в вашем случае formObjectType
.Таким образом, это действительно зависит от того, какие опции принимаются в этом поле.Например, скажем, вы хотите передать опцию, чтобы formObjectType
показывал или не отображал данное поле.Вы могли бы сделать что-то вроде этого:
// Application/AcmeBundle/Form/Type/FormObjectType.php
class FormObjectType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$this->add('name', 'text');
if ($options['display_custom_field'] === true) {
$this->add('name_custom', 'text');
}
}
public function getDefaultOptions(array $options)
{
return array(
'display_custom_field' => false,
);
}
}
// Application/AcmeBundle/Controller/FormController.php
class FormController extends Controller
{
public function createForm($object)
{
return $this->getFormFactory()->create(new FormObjectType(), $object, array(
'display_custom_field' => true,
));
}
public function customAction()
{
$form = $this->createForm();
// Code here ...
}
}
Если опция в массиве передана или массив не передан вообще, значение по умолчанию, если установлено в formObjectType
.Таким образом, этот массив используется для настройки параметров, ожидаемых для данного типа.Это также работает со встроенным типом, таким как text
, date
и т. Д.
Надеюсь, это поможет.
С уважением,
Matt
PS Вы должныначните свое имя класса с заглавной буквы: FormObjectType
вместо formObjectType
, чтобы отличать переменные и методы от имен классов.Это всего лишь предложение:)