這是我簡單的代碼如何使用redirectToRoute正確傳遞對象?
class LuckyController extends Controller { public function taskFormAction(Request $request) { $task = new Task(); //$task->setTask('Test task'); //$task->setDueDate(new \DateTime('tomorrow noon')); $form = $this->createFormBuilder($task) ->add('task', TextType::class) ->add('dueDate', DateType::class) ->add('save', SubmitType::class, array('label' => 'Save')) ->getForm(); $form->handleRequest($request); if($form->isSubmitted() && $form->isValid()) { $task = $form->getData(); return $this->redirectToRoute('task_ok', array('task' => '123')); } return $this->render('pre.html.twig', array('pre' => print_r($task, true), 'form' => $form->createView())); } public function taskOKAction(Task $task) { return $this->render('ok.html.twig', array('msg' => 'ok', 'task' => print_r($task, true))); } }
這行
return $this->redirectToRoute('task_ok', array('task' => '123'));
使得重定向到taskOKAction,但它讓我只是URL發送參數(?=任務123)。
我需要發送的對象$任務taskOKAction打印在屏幕上鍵入的形式是什麼用戶。
我該怎麼做?我已經上衝計算器詢問得知,好的解決方案是將數據從存儲形式之前(例如,在數據庫或文件),只是傳遞參數的URL對象的ID。我認爲這是相當不錯的解決方案,但它增加了我的責任,以檢查用戶是否未更改URL中的ID以顯示其他對象。
這樣做的最好方法是什麼?
最好的問候, L.
我使用routing.yml。我試圖做你的解決方案,所以我寫道: '路徑:/任務/ OK/{任務}'路由 接下來,我改變了代碼 '返回$這個 - > redirectToRoute(「task_ok」,陣列(「任務」 => $任務));' 發送對象和我 '警告:的preg_match()預計參數2是串,對象given' :( 我還 '@ParamConverter( 「任務」 加入,類= 「的appbundle:實體:任務」)' 前taskOK行動 – Lukaszy
不及格的對象,只是ID –