В моем приложении мне нужно отобразить группу флажков, с помощью которых пользователь может указать определенные параметры. В моем случае это относится к «зонам», то есть к зонам A, зоне B, зоне C и т. Д.Symfony 2/Twig и коллекция флажков
Проблема, с которой я столкнулся, заключается в том, как построить это в моем классе типа формы, используя FormBuilderInterface
, предоставляемый инфраструктурой ,
Документация относится к типу «коллекции» [1], который кажется мне необходимым, но у меня возникли проблемы со связью элемента флажка [2]. Документация только, кажется, дает пример для одного флажка, но мне нужна его для группы.
Это то, что я до сих пор (я ушел из других полей для краткости):
class FormType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('zones', 'collection',
array(
'type' => 'checkbox',
'options' => array(
'zone-a' => 'Zone A',
'zone-b' => 'Zone B',
'zone-c' => 'Zone C',
)
)
)
;
}
}
и класс данных (модель формы, если вы будете):
class FormData {
protected $zones = [];
public function __construct(array $zones = NULL)
{
if(! empty($zones))
{
$this->setZones($zones);
}
}
public function getZones()
{
return $this->zones;
}
public function setZones($zones)
{
$this->zones = $zones;
}
}
Это, как я визуализации элемент формы (на данный момент):
{{ form_row(form.zones) }}
Тем не менее, выше, выдает только метку с именем зоны и nothi ng else.
Как правильно отобразить группу/коллекцию флажков в приложении Symfony 2/Twig?
[1] http://symfony.com/doc/current/reference/forms/types/collection.html [2] http://symfony.com/doc/current/reference/forms/types/checkbox.html