加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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与原则我收到这个错误.

The target-entity EntityUser cannot be found in ‘SubjectEntitySubject#user’.

这是我的代码片段.

<?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),除非引用同一命名空间中的类,否则可能会使用短名称(如上一个示例).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读