我正在为我的工作培训做一个项目。 但我面临一个错误,而且无法解决。
所以,我使用关系ManyToOne来加入两件事,即产品类别。
但是当我想添加产品时,我有这个错误:
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);
...
我的实体,产品
...
/**
* @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;
}
...
对不起,有些变量是法语。 类别 - >类别 产品 - >产品
如果有人可以帮助我。 问我是否想要更多的信息,但我给你的主要信息我认为错误来自。
[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
答案 0 :(得分:7)
在您的实体中
public function setCategorie(\Sam\VitrineBundle\Entity\Categorie $categorie)
{
$this->categorie = $categorie;
}
而不是
public function setCategorie(\Sam\VitrineBundle\Entity\Categorie $categorie)
{
$this->$categorie = $categorie;
}