Marcin Lewandowski

Marcin Lewandowski Programista
PHP/MySQL,
poszukuję...

Temat: Walidacja kolekcji nie wyświetlają się błędy w kolekcji

Witam,
Mam problem z wyświetleniem błędów jakie wystąpiły w walidacji kolekcji. Mam formularz "ProductType"

class ProductType extends AbstractType
{
public function buildForm(FormBuilderInterface $builderInterface, array $options)
{
$builderInterface -> add('items', 'collection', array(
'type' => new ProductItemType(),
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'cascade_validation' => true,
))
;
}

public function setDefaultOptions(OptionsResolverInterface $resolverInterface)
{
$resolverInterface -> setDefaults(array(
'data_class' => 'Pit\VnetBundle\Entity\Product',
'cascade_validation' => true,
));
}

public function getName()
{
return 'pit_vnetbundle_product';
}
}


Jak widać ma on kolekcję "items" typu "ProductItemType" (inne pola pominąłem aby było przejrzyściej).


class ProductItemType extends AbstractType
{
public function buildForm(FormBuilderInterface $builderInterface, array $options)
{
$builderInterface
-> add('productRelated', 'entity', array(
'label' => 'Produkt powiązany:',
'class' => 'PitVnetBundle:Product',
'property' => 'name',
'empty_value' => ' - wybierz - ',
))
-> add('quantity', 'text', array(
'label' => 'Ilość:',
))
;
}

public function setDefaultOptions(OptionsResolverInterface $resolverInterface)
{
$resolverInterface -> setDefaults(array(
'data_class' => 'Pit\VnetBundle\Entity\ProductItem',
));
}

public function getName()
{
return 'pit_vnetbundle_product_item';
}
}


W przypadku gdy któreś z pól nie przejdzie walidacji błędy wyświetlają się przy danym polu prawidłowo. Jednak, gdy błąd wystąpi w kolekcji dostaję jedynie komunikat, że formularz nie przeszedł walidacji zaś przy polu z kolekcji nie pojawia się informacja o błędzie. Jakaś podpowiedź gdzie szukać problemu ??
Krzysztof N.

Krzysztof N. CEO. Aplikacje
internetowe i
mobilne. Symfony,
Zend.

Temat: Walidacja kolekcji nie wyświetlają się błędy w kolekcji

Marcin L.:
Mam problem z wyświetleniem błędów jakie wystąpiły w walidacji kolekcji. Mam formularz "ProductType"

class ProductType extends AbstractType
{
public function buildForm(FormBuilderInterface $builderInterface, array $options)
{
$builderInterface -> add('items', 'collection', array(
'type' => new ProductItemType(),
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'cascade_validation' => true,
))
;
}

public function setDefaultOptions(OptionsResolverInterface $resolverInterface)
{
$resolverInterface -> setDefaults(array(
'data_class' => 'Pit\VnetBundle\Entity\Product',
'cascade_validation' => true,
));
}

public function getName()
{
return 'pit_vnetbundle_product';
}
}


Jak widać ma on kolekcję "items" typu "ProductItemType" (inne pola pominąłem aby było przejrzyściej).


class ProductItemType extends AbstractType
{
public function buildForm(FormBuilderInterface $builderInterface, array $options)
{
$builderInterface
-> add('productRelated', 'entity', array(
'label' => 'Produkt powiązany:',
'class' => 'PitVnetBundle:Product',
'property' => 'name',
'empty_value' => ' - wybierz - ',
))
-> add('quantity', 'text', array(
'label' => 'Ilość:',
))
;
}

public function setDefaultOptions(OptionsResolverInterface $resolverInterface)
{
$resolverInterface -> setDefaults(array(
'data_class' => 'Pit\VnetBundle\Entity\ProductItem',
));
}

public function getName()
{
return 'pit_vnetbundle_product_item';
}
}


W przypadku gdy któreś z pól nie przejdzie walidacji błędy wyświetlają się przy danym polu prawidłowo. Jednak, gdy błąd wystąpi w kolekcji dostaję jedynie komunikat, że formularz nie przeszedł walidacji zaś przy polu z kolekcji nie pojawia się informacja o błędzie. Jakaś podpowiedź gdzie szukać problemu ??
Jak renderujesz formularz w widoku?

PS. Zapraszam do grupy Symfony 2.x :)



Wyślij zaproszenie do