1
如何在Symfony中的表單構建器中獲取字段值。 我有2個下拉框的形式 我想在Dropdown2的時候在頁面打開的時候根據Dropdown1來選擇相關的選項。如何在Symfony中的表單構建器中獲取字段值
這裏是我的形式
use Symfony\Component\Form\FormEvents;
use Symfony\Component\Form\Event\DataEvent;
use C2Educate\ToolsBundle\Entity\Students;
public function buildForm(FormBuilder $builder, array $options) {
字段1:
$builder->add('leadSource', 'entity', array(
'label' => 'How did you hear about C2? Source ',
'class' => 'C2EducateToolsBundle:LeadSources',
'query_builder' => function($repo) {
return $repo->createQueryBuilder('p')->orderBy('p.sort_order', 'ASC');
},
'property' => 'name',
'empty_value' => 'Select'
));
$leadSource = 1;
$leadSource = 1;
- 當我靜態分配值它的工作原理,但我想要得到的「leadSource」的值,並將其分配給$leadSource
我想獲得leadSource並將其傳遞給leadSourceSub查詢
字段2:
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (DataEvent $event) {
$form = $event->getForm();
$entity = $event->getData();
$leadSource = $entity->getLeadSourceID();
$form->add('leadSourceSub', 'C2Educate\ToolsBundle\Entity\Students', array(
'label' => ' Source Detail ',
'required' => true,
'class' => 'C2EducateToolsBundle:LeadSourceSubs',
'query_builder' => function($repo) use ($leadSource) {
return $repo->createQueryBuilder('p')
->where('p.lead_source_id =:leadSource')
->setParameter('leadSource', $leadSource)
->orderBy('p.sort_order', 'ASC');
},
'property' => 'name',
'empty_value' => 'Select'
));
});
是我試圖從相同的[動態生成的表單提交(https://symfony.com/doc/current/form/dynamic_form_modification.html#dynamic-generation-for-submitted-forms)。我正在一個Error'Catchable致命錯誤:傳遞給C2Educate \ ToolsBundle \表格\類型參數1 \ StudentsType :: C2Educate \ ToolsBundle \表格\型號\ {閉合}()必須C2Educate \ ToolsBundle \表格\型號\ FormEvent,實例的一個實例Symfony的\分量\表格\事件\ DataEvent給出在C:\ XAMPP \ htdocs中\ c2Education的\ src \ C2Educate \ ToolsBundle \表格\型號\ StudentsType.php線121' – Developer
你可能只是複製代碼,忘了導入命名空間。 '使用的Symfony \分量\表格\ FormEvent;' –
看來你很老的Symfony,所以可能需要使用'的Symfony \分量\表格\事件\ DataEvent',而不是一個在上面,修改封閉期待'DateEvent'代替'FormEvent'。 –