[Symfony2] Catchable Fatal Error:类[...]的对象无法转换为字符串

MeT*_*KiD 2 php entity doctrine many-to-one symfony

我正在为我的工作培训做一个项目.但我面临一个错误,无法解决.

所以,我使用关系ManyToOne来加入2件事,产品类别.

但是,当我想添加产品时,我有这个错误:

ContextErrorException:Catchable Fatal Error:类Sam\VitrineBundle\Entity\Categorie的对象无法在D:\ DOCUMENTS\Dropbox\COURS\S4\STAGE\Symfony\src\Sam\VitrineBundle\Entity\Produit.php行中转换为字符串124

我的控制器,我有错误的代码.

...
$catRepo = $this->getDoctrine()->getManager()->getRepository('SamVitrineBundle:Categorie');
$cat = $catRepo->findOneById($form["categorie"]->getData());
$product -> setCategorie($cat);
...
Run Code Online (Sandbox Code Playgroud)

我的实体,产品

...
    /**
     * @ORM\ManyToOne(targetEntity="Categorie", inversedBy="produits", cascade={"remove"})
     * @ORM\JoinColumn(name="categorie_id", referencedColumnName="id")
     */
    protected $categorie;

    /**
     * Set categorie
     *
     * @param Sam\VitrineBundle\Entity\Categorie $categorie
     */
    public function setCategorie(\Sam\VitrineBundle\Entity\Categorie $categorie)
    {
      $this->$categorie = $categorie;
    }

    /**
     * Get categorie
     *
     * @return Sam\VitrineBundle\Entity\Categorie 
     */
    public function getCategorie()
    {
      return $this->categorie;
    }
...
Run Code Online (Sandbox Code Playgroud)

对不起,有些变量用法语.类别 - >类别产品 - >产品

如果有人可以帮助我.问我是否想要更多的信息,但我给你的主要信息,我认为错误来自.

[1] Symfony\Component\Debug\Exception\DummyException: 
    at n/a
        in D:\DOCUMENTS\Dropbox\COURS\S4\STAGE\Symfony\vendor\symfony\symfony\src\Symfony\Component\Debug\ErrorHandler.php line 174

    at Symfony\Component\Debug\ErrorHandler->handle('4096', 'Object of class Sam\VitrineBundle\Entity\Categorie could not be converted to string', 'D:\DOCUMENTS\Dropbox\COURS\S4\STAGE\Symfony\src\Sam\VitrineBundle\Entity\Produit.php', '124', array('categorie' => object(Categorie)))
        in D:\DOCUMENTS\Dropbox\COURS\S4\STAGE\Symfony\src\Sam\VitrineBundle\Entity\Produit.php line 124

    at Sam\VitrineBundle\Entity\Produit->setCategorie(object(Categorie))
        in D:\DOCUMENTS\Dropbox\COURS\S4\STAGE\Symfony\src\Sam\VitrineBundle\Controller\VitrineController.php line 113

    at Sam\VitrineBundle\Controller\VitrineController->addProductAction()
        in  line 

    at call_user_func_array(array(object(VitrineController), 'addProductAction'), array())
        in D:\DOCUMENTS\Dropbox\COURS\S4\STAGE\Symfony\app\bootstrap.php.cache line 2925

    at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), '1')
        in D:\DOCUMENTS\Dropbox\COURS\S4\STAGE\Symfony\app\bootstrap.php.cache line 2897

    at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), '1', true)
        in D:\DOCUMENTS\Dropbox\COURS\S4\STAGE\Symfony\app\bootstrap.php.cache line 3036

    at Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle(object(Request), '1', true)
        in D:\DOCUMENTS\Dropbox\COURS\S4\STAGE\Symfony\app\bootstrap.php.cache line 2304

    at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
        in D:\DOCUMENTS\Dropbox\COURS\S4\STAGE\Symfony\web\app_dev.php line 28
Run Code Online (Sandbox Code Playgroud)

VBe*_*Bee 7

在您的实体中

public function setCategorie(\Sam\VitrineBundle\Entity\Categorie $categorie)
{
    $this->categorie = $categorie;
}
Run Code Online (Sandbox Code Playgroud)

代替

public function setCategorie(\Sam\VitrineBundle\Entity\Categorie $categorie)
{
    $this->$categorie = $categorie;
}
Run Code Online (Sandbox Code Playgroud)