php – 无法找到目标实体“某个实体”
发布时间:2020-12-13 16:40:07 所属栏目:PHP教程 来源:网络整理
导读:我正在使用ZF2与原则我收到这个错误. The target-entity EntityUser cannot be found in ‘SubjectEntitySubject#user’. 这是我的代码片段. ?phpnamespace SubjectEntity;use DoctrineORMMapping as ORM;use ZendInputFilterInputFilter;use ZendI
我正在使用ZF2与原则我收到这个错误.
这是我的代码片段. <?php namespace SubjectEntity; use DoctrineORMMapping as ORM; use ZendInputFilterInputFilter; use ZendInputFilterFactory as InputFactory; use ZendInputFilterInputFilterAwareInterface; use ZendInputFilterInputFilterInterface; /** * @ORMEntity * @ORMTable(name="subject") * @property string $subjectname * @property int $user_id * @property int $id */ class Subject implements InputFilterAwareInterface { protected $inputFilter; /** * @ORMId * @ORMColumn(type="integer"); * @ORMGeneratedValue(strategy="AUTO") */ protected $id; /** * @ORMColumn(type="string") */ protected $subjectname; /** * @ORMManyToOne(targetEntity="EntityUser",inversedBy="subjects") * @var User|null */ private $user; /** @return User|null */ public function getUser() { return $this->user; } /** @param User $user */ public function setUser(User $user) { if($user === null || $user instanceof User) { $this->user = $user; } else { throw new InvalidArgumentException('$user must be instance of EntityUser or null!'); } }} 然后是我的“用户”实体 namespace SubjectEntity; use DoctrineORMMapping as ORM; use ZendInputFilterInputFilter; use ZendInputFilterFactory as InputFactory; use ZendInputFilterInputFilterAwareInterface; use ZendInputFilterInputFilterInterface; /* * @ORMEntity * @ORMTable(name="users") * @property string $username * @property string $password * @property int $id */ class User implements InputFilterAwareInterface { protected $_username; protected $_password; /** * @ORMOneToMany(targetEntity="EntitySubject",mappedBy="user") * @var Collection */ private $subjects; /** @ORMId() @ORMColumn(type="integer") @ORMGeneratedValue(strategy="AUTO") @var int */ protected $_id; public function __get($property) { return $this->$property; } public function __set($property,$value) { $this->$property = $value; } //Getters and setters /** @return Collection */ public function getSubjects() { return $this->comments; } /** @param Comment $comment */ public function addSubject(Subject $comment) { $this->comments->add($comment); $comment->setUser($this); } }
您的实体声明不正确:
* @ORMManyToOne(targetEntity="EntityUser",inversedBy="subjects") 这应该是这样的: * @ORMManyToOne(targetEntity="SubjectEntityUser",inversedBy="subjects") 或者,由于两个类共享同一个命名空间,您还可以使用: * @ORMManyToOne(targetEntity="User",inversedBy="subjects") targetEntity必须是完全限定类名(FQCN),除非引用同一命名空间中的类,否则可能会使用短名称(如上一个示例). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |