2016-10-23 76 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(), 
)); 
} 

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