大家好symfonistes,與會話值設置表單數據不提交這個symfony的形式
我想用的symfony的形式在網頁中搜索數據,當這些數據被驗證我用一個表分頁系統在表單所在的同一個網頁上查看。
我的網頁運行正常,搜索引擎和分頁系統表,但只有一件事情沒有運行。當我點擊系統分頁按鈕(排序,頁碼或每頁查看次數)時,會向控制器發送一個請求,此時我會丟失我的數據選擇表。
系統分頁的結果很好,相對於以前的搜索,但數據形式消失。這樣用戶可以使用我的網頁,但他沒有看結果的參數。
我想使用會話重建我的表單與以前定義的數據。在這個時候,我在表單類中使用preferred_choices(不運行),但如果你有另一個解決方案,歡迎你。
或者你能告訴我爲什麼我的表單preferred_choices沒有運行嗎?
感謝了很多的支持
我的表單類:
class CqsProSansMarqueType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$defaultCQSsearch = new CqsProSansMarque();
ladybug_dump($options['attr']);
$defaultCQSsearch->setRayLibelle((!array_key_exists('ray_libelle', $options['attr'])) ? null : $options['attr']['ray_libelle']);
$defaultCQSsearch->setFamLibelle((!array_key_exists('fam_libelle', $options['attr'])) ? null : $options['attr']['fam_libelle']);
$defaultCQSsearch->setCaeLibelle((!array_key_exists('cae_libelle', $options['attr'])) ? null : $options['attr']['cae_libelle']);
ladybug_dump($defaultCQSsearch);
$builder
->add('ray_libelle', 'entity', array(
'class' => 'ApplicationDriveBundle:CqsProSansMarque',
'property' => 'ray_libelle',
'query_builder' => function(CqsProSansMarqueRepository $er){
return $er->createQueryBuilder('a')
->select('a')
->groupBy('a.ray_libelle');
},
'preferred_choices' => array($defaultCQSsearch),
'label' => 'rayon',
'required' => false,
))
->add('fam_libelle', 'entity', array(
'class' => 'ApplicationDriveBundle:CqsProSansMarque',
'property' => 'fam_libelle',
'query_builder' => function(CqsProSansMarqueRepository $er){
return $er->createQueryBuilder('a')
->select('a')
->groupBy('a.fam_libelle');
},
'label' => 'famille',
'required' => false,
))
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Application\DriveBundle\Entity\CqsProSansMarque',
));
}
public function getName()
{
return 'CqsProSansMarque';
}
}
我控制器構造體的形式:
$searchForm2 = $this->createForm(new CqsProSansMarqueType(), $CqsProSansMarque, array(
'action' => $this->generateUrl('QualityPage_proSansMarque_search', array('maxItemsPerPage' => $maxItemsPerPage)),
'method' => 'POST',
'attr' => array('ray_libelle' => $CqsProSansMarque->getRayLibelle()),
));
我測試了我的$ defaultCQSsearch變量。它似乎很好設置。
問題與之前一樣。 preferred_choices不會將提交的表單數據類存儲在會話中或使用事件Form :: PRE_SET_DATA運行。我的對象設置了正確的值,但preferred_choices不會在字段中選擇我的值。 – darkomen 2014-11-11 14:05:46
您需要編輯表單的數據而不是首選的選項 – 2014-11-11 17:16:30
但是我希望我的實體字段具有先前選擇的數據和(其重要的)其他數據作爲首次使用表單的首選。在同一選擇HTML或實體字段形式中的首選選項和其他選項。 – darkomen 2014-11-12 20:12:26