我创建了一个用户列表,每个用户都有一个statusID。此statusID是表状态的FK。
我能够坚持但是当我需要打印此列表时,我无法显示状态名称,只能显示用户表中的statusID。我的代码如下:
$repository = $this->getEm()->getRepository($this->entity);
$query = $repository->createQueryBuilder("u");
$adapter = new DoctrineAdapter(new ORMPaginator($query));
$paginator = new Paginator($adapter);
$paginator->setCurrentPageNumber($page);
$paginator->setDefaultItemCountPerPage(10);
在我看来,我循环了结果。
forech ($this->user as $user) $user->getStatus()->getName();
它返回:
Fatal error: Call to a member function getName() on a non-object
使用var_dump($ paginator),它不会带来我创建的oneToMany关系。
实体\用户
/**
* @ORM\OneToMany(targetEntity="Sistema\Entity\Status", mappedBy="user", cascade={"persist", "merge", "refresh", "remove"})
* @var Collection
*/
protected $status;
实体\状态
/**
* @ORM\ManyToOne(targetEntity="SimplaUser\Entity\User", inversedBy="status", cascade={"persist", "merge", "refresh", "remove"})
* @ORM\JoinColumn(name="statusID", referencedColumnName="id", unique=false, nullable=false)
* @ORM\Column(name="statusID", type="integer")
* @var User|null
*/
protected $user;
如何获取用户和状态并在视图中打印?
最好的关注。
答案 0 :(得分:0)
我的错误发生在关系列属性。
* @ORM\Column(name="statusID", type="integer")
我删除它并解决了,现在我的实体就像:
/**
* @ORM\ManyToOne(targetEntity="SimplaUser\Entity\User", inversedBy="status", cascade={"persist", "merge", "refresh", "remove"})
* @ORM\JoinColumn(name="statusID", referencedColumnName="id", unique=false, nullable=false)
* @var User|null
*/
protected $user;
很抱歉在同一时间发布和回复,但这是一个尝试有效。希望这可以帮助未来的任何人。
最好的关注。