2016-10-23 74 views
-1

我該如何使用切換案例來堅持來自多個實體的實體 我使用變量來依賴實體 這段代碼可能會幫助你理解我的問題?symfony2切換案例實體

public function addAction($name, Request $request) { 
    switch ($name) { 
     case 'Article': 
      $name = new Article(); 
      $nameType = new ArticleType(); 
      break; 
     case 'Comment': 
      $name = new Comment(); 
      $nameType = new CommentType(); 
      break; 
     case 'Blog': 
      $name = new Blog(); 
      $nameType = new BlogType(); 
      break; 

     return $name; 
     return $nameType; 
    } 

    $form = $this->get('form.factory')->create($nameType, $name); 
    $em = $this->getDoctrine()->getManager(); 
    $em->persist($name); 
    $em->flush(); 

    return $this->render('WFBundle:Blog:add.html.twig', array(
     'form' => $form->createView(), 
    )); 
} 
+0

請你面對 –

+0

錯誤您的問題,這些是什麼'返回$ name;'; '返回$ nameType;'?你不應該使用相同的變量'$ name'來傳遞變量和實體。 'switch/case'中沒有'default','$ name'和'$ nameType'可能沒有被正確定義。 –

回答

1

開關罩不是一個函數,下面這段代碼使用

public function addAction($name, Request $request) { 
switch ($name) { 
case 'Article': 
    $name = new Article(); 
    $nameType = new ArticleType(); 
    break; 
    case 'Comment': 
    $name = new Comment(); 
    $nameType = new CommentType(); 
    break; 
case 'Blog': 
    $name = new Blog(); 
    $nameType = new BlogType(); 
    break; 
} 
$form = $this->get('form.factory')->create($nameType, $name); 
$form->handleRequest($request); 
if($form->isSubmitted()){ 
    $em = $this->getDoctrine()->getManager(); 
    $em->persist($name); 
    $em->flush(); 
} 
return $this->render('WFBundle:Blog:add.html.twig', array(
    'form' => $form->createView(), 
)); 
} 

所以不能使用回線,只返回控制器返回