2015-07-20 75 views
1

我是symfony2中的新成员,并开始了一个简单的symblog项目,以创建一个帖子和评论,当我创建一个评论的一切糟糕的一切都很好,但现在我必须坚持,合并和删除我的帖子,我有此错误:可捕捉的致命错误:symfony2

Catchable Fatal Error: Argument 1 passed to NoticiaBundle\Repository\NoticiaRepository::adicionar() must be an instance of Proxies__CG__\NoticiaBundle\Entity\Noticia, instance of NoticiaBundle\Entity\Noticia given, called in C:\Desenvolvimento\wamp\www\myproject\src\NoticiaBundle\Controller\NoticiaController.php on line 49 and defined

控制器坚持功能:

/** 
* @Route("/cadastrar_noticia", name="_cadastrar_noticia") 
* @Template() 
*/ 
public function cadastrarAction() { 
    $noticia = new Noticia(); 
    $request = $this->getRequest(); 
    $form = $this->createForm(new NoticiaType(), $noticia); 
    $form->handleRequest($request); 

    if ($form->isValid()) { 
     try { 
      $noticia = $form->getData(); 

      $noticiaRepository = $this->getDoctrine()->getRepository('NoticiaBundle:Noticia'); 
      $noticiaRepository->adicionar($noticia); 

      $this->addFlash('success', 'Noticia cadastrada com sucesso'); 

      return $this->redirectToRoute('_imagem_raias_index'); 
     } catch (Exception $ex) { 
      echo $ex->getMessage(); 
     } 
    } 

    return array("form" => $form->createView()); 
} 

坚持仓库

public function adicionar(Noticia $noticia) { 

    $this->_em->persist($noticia); 
    $this->_em->flush(); 
    return true; 

} 

而我的FormType

<?php 

namespace NoticiaBundle\Form; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 
use Symfony\Component\OptionsResolver\OptionsResolverInterface; 

class NoticiaType extends AbstractType 
{ 
    /** 
    * @param FormBuilderInterface $builder 
    * @param array $options 
    */ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('titulo',null, array('attr' => array('class' => 'form-control'), 
       'label_attr' => array('class' => 'control-label col-lg-2') 
      )) 
      ->add('imagem',null, array('attr' => array('class' => 'form-control'), 
       'label_attr' => array('class' => 'control-label col-lg-2') 
      )) 
      ->add('noticia','textarea', array('attr' => array('class' => 'form-control', 'rows' => 15), 
       'label_attr' => array('class' => 'control-label col-lg-2') 
      )) 
      ->add('tags',null, array('attr' => array('class' => 'form-control'), 
       'label_attr' => array('class' => 'control-label col-lg-2') 
      )) 
      ->add('salvar', 'submit', array('attr' => array('class' => 'btn btn-primary pull-right'))); 
    } 

    /** 
    * @param OptionsResolverInterface $resolver 
    */ 
    public function setDefaultOptions(OptionsResolverInterface $resolver) 
    { 
     $resolver->setDefaults(array(
      'data_class' => 'NoticiaBundle\Entity\Noticia' 
     )); 
    } 

    /** 
    * @return string 
    */ 
    public function getName() 
    { 
     return 'noticiabundle_noticia'; 
    } 
} 

任何人都可以帮助我?

回答

0

在您定义adicionar的存储库中,检查您的use声明。您需要使其指代实际模型,而不是代理。