2016-10-23 18 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' для переменной, переданной в действии, и сущности. В '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' –

ответ

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(), 
)); 
} 

Так что не использовать линии возврата, возвращают только возврат контроллера