我很不解.. 我正在Symfony2.3。通過控制器傳遞對象中的Symfony2
我有一個控制器,如果表單提交轉發到一個單獨的控制器。
if ($form->isValid()) {
$response = $this->forward('MusicMBundle:Song:addTrackToSong', array(
'Track'=>$Track,
));
return $response;
}
然而,如可以看到的,軌道參數通過該前進到以下(簡化的)控制器通過,以另一種形式。
public function addTrackToSongAction(Request $request, $Track){
if ($form->isValid()) {
//LOGIC
return $this->redirect($this->generateUrl('MusicMBundle_homepage'));
}
return $this->render('MusicMBundle:Song:addtracktosong.html.twig', array(
'Track' => $Track, 'form' => $form->createView(),
));
如果我var_dump($軌道)函數中的任何地方,它的存在和正是我想要它。
然而,當第二表單提交,Symfony2中引發以下錯誤:
Controller "Music\MBundle\Controller\SongController::addTrackToSongAction()" requires
that you provide a value for the "$Track" argument (because there is no default value
or because there is a non optional argument after this one).
坦率地說我很不解。我可以使用我需要的所有東西,但symfony對我很生氣。這個問題可能出現在我的轉發策略中?
這是我的路由文件,如果這個問題可能是存在:
MusicMBundle_Song_addTrackToSong:
pattern: /addTrackToSong
defaults: { _controller: MusicMBundle:Song:addTrackToSong }
requirements:
_method: GET|POST
我與框架初學者,我只是不知道從哪裏開始,不能找着什麼。
如果我可以提供任何其他信息讓我知道。
非常感謝!
你嘗試刪除請求參數和使用'$這個 - > Request()方法,而不是' –
無論你是指向錯誤的路線(轉發路線)或$軌道應該可以爲空公共功能addTrackToSongAction(請求$請求,$軌道= null)'但我投了第一個。 –