Autor | Zpráva | ||
---|---|---|---|
breeta Profil |
#1 · Zasláno: 1. 8. 2018, 10:34:20
Zdravím, neřešil někdo předání z rodičovského form id pro filtraci výběru potomka formuláře (CollectionType)?
Mám rodiče: class VideoType extends AbstractType { public $IdSubject; public function buildForm(FormBuilderInterface $builder, array $options) { $this->IdSubject = $builder->getData()->getTheme()->getSubject()->getId(); $builder ...... ->add('videoDependences', CollectionType::class, [ 'entry_type' => VideoDependenceType::class, 'entry_options' => array( 'label' => false ), 'label' => false, 'allow_add' => true, 'allow_delete' => true, 'delete_empty' => true, 'by_reference' => false, ]) ; } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'data_class' => Video::class, ]); } } IdSubject potřebuji dostat do potomka formuláře v CollectionType class VideoDependenceType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('videoDependence', EntityType::class, [ 'class' => Video::class, 'mapped' => false, 'query_builder' => function (VideoRepository $er) { return $er->createQueryBuilder('v') ->leftJoin('v.theme', 't') ->andWhere('t.subject = :subject') ->setParameter('subject', 1) ->orderBy('v.name', 'ASC'); }, 'choice_label' => 'name', 'label' => 'Video' ]) ; } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'data_class' => VideoDependence::class, ]); } } Nevíte jak to udělat nejlíp? |
||
Časová prodleva: 27 dní
|
|||
Amunak Profil |
#2 · Zasláno: 28. 8. 2018, 04:20:45
A co je to IdSubject, kde se tam bere? Proč je public, resp. proč ho získáváš takhle nešikovně uvnitř toho formu v buildForm fázi?
Buď jde skutečně o součást modelu (dat), a pak by to mělo být nalezitelné i v tom potomkovi, nebo jde o nějakou servisu nebo tak něco, a pak by se to tam mělo cpát přes DI. Nebo jde o "vlastnost" toho formuláře, a pak bys to tam měl cpát přes options (configureOptions). |
||
Časová prodleva: 6 let
|
0