2016-10-23 3 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

에 직면하고 에러 질문입니다 제발에만 컨트롤러 수익을 반환, 반환 라인을 사용하지' return $ name;'; 'return $ 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(), 
)); 
} 

그래서