我一直在尋找解決方案幾個小時。我正在使用 Symfony 3.2。
我正在使用 Symfony 表單來顯示一個資料表(在表單中選擇了不同的過濾器)和 Ajax => 沒有提交按鈕。
我可以訪問資料表的不同結果以查看更多資訊。
我想要的是,當我通過單擊按鈕離開詳細資訊頁面并回傳研究頁面時,我可以將我選擇的所有過濾器保留在歷史記錄中。
我想使用會話,但實際上,它似乎有 0 影響。下面是一些代碼。
控制器:
public function indexAction(Request $request)
{
$form = $this->createSearchForm();
$request->getSession()->set('form_data', $form->getData());
$form->handleRequest($request);
$form->setData($request->getSession()->get('form_data'));
$this->datatable($form->getData());
return $this->render('backend/jobOffer/index.html.twig', [
'form' => $form->createView()
]);
}
表格型別
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('publicationState', ChoiceType::class, [
'label' => 'backend.job_offer.publication_state',
'required' => false,
'choices' => JobOffer::getPublicationStateChoices(),
'choice_translation_domain' => 'choices',
])
->add('job', Select2EntityType::class, [
'label' => 'backend.job',
'required' => false,
'class' => 'AppBundle:Job',
'text_property' => 'label',
'remote_route' => 'job_autocomplete',
])
->add('ids', HiddenType::class, [
'required' => false,
])
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'csrf_protection' => false,
'method' => 'GET',
]);
}
我有一個問題,我的表單構建器中有一個名為“job”的 EntityType(或 Select2EntityType)欄位,但我無法在會話中獲取該欄位的內容。此欄位在輸入 2 個字母后顯示自動完成資料串列,我們可以選擇其中一項作業。
而且,當我重繪 頁面時,我丟失了所有過濾器,但我應該將它們存盤在會話中?
在此先感謝您的幫助,
uj5u.com熱心網友回復:
是的,您可以使用,$form->getData()但要做到這一點,您需要根據此處的檔案進行操作,并使用if ($form->isSubmitted() && $form->isValid()) {其他方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/331944.html
