1
致命错误:调用未定义方法学说\ ORM \ PersistentCollection ::的getPath()Symfony的2一对多
用户实体: user.php的
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Security\Core\User\UserInterface;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @ORM\Entity
* @ORM\Table(name="users")
*/
class User implements UserInterface, \Serializable
{
/**
* @ORM\OneToMany(targetEntity="Avatars", mappedBy="user")
*/
protected $avatars;
/**
* @return mixed
*/
public function getAvatar()
{
return $this->avatars;
}
public function __construct()
{
$this->avatars = new ArrayCollection();
}
/**
* Get avatars
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getAvatars()
{
return $this->avatars;
}
和头像实体: Avatar.php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
/**
* @ORM\Entity
* @ORM\Table(name="avatars")
*/
class Avatars
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="avatars")
* @ORM\JoinColumn(name="user", referencedColumnName="id")
*/
private $user;
/**
* @ORM\Column(type="string", length=54)
*/
private $path;
/**
* @return mixed
*/
public function getPath()
{
return $this->path;
}
无法从控制器到阿凡达实体:
HomeController.php
public function homeAction()
{
$usr= $this->get('security.token_storage')->getToken()->getUser();
var_dump($user->getAvatar()->getPath());exit;
}
我在哪里弄错了?我只开始学习symfony框架,也许我忘了添加任何东西?
你说的对,谢谢 – Asmoria