我尝试从查询中获得结果
$user = $this->getEntityManager()
->getRepository('\ApanelUsers\Entity\Usercommon')
->findAll();
但如果我尝试添加到查询连接列,我有一个错误,没有它我有很好的结果。 这是我需要的JoinColumt:
/**
* @var \ApanelUsers\Entity\Userstatus
*
* @ORM\ManyToOne(targetEntity="ApanelUsers\Entity\Userstatus")
* @ORM\JoinColumn(name="User_StatusId", referencedColumnName="UserStatusId", nullable=false)
*/
private $userStatusid;
/**
* Set userStatusid
*
* @param \ApanelUsers\Entity\Userstatus $userStatusid
* @return Usercommon
*/
public function setUserStatusid(\ApanelUsers\Entity\Userstatus $userStatusid = null)
{
$this->userStatusid = $userStatusid;
return $this;
}
/**
* Get userStatusid
*
* @return \ApanelUsers\Entity\Userstatus
*/
public function getUserStatusid()
{
return $this->userStatusid;
}
这是一个视图
<?= $user->getUserStatusid(); ?>
但我有错误
捕获致命错误:类/ DoctrineORMModule \ Proxy__CG __ \ ApanelUsers \ Entity \ Userstatus类的对象无法转换为/home/xtadmin/localhost/panorama-hotel.local/www/module/ApanelUsers/view/apanel-users中的字符串第27行/index/index.phtml
答案 0 :(得分:1)
错误很明显,你不能回显你必须调用其方法之一的整个关联实体,当你调用$user->getUserStatusid()
时,这意味着它将返回ApanelUsers\Entity\Userstatus
实体的整个对象,这样你就可以' t使用<?= entity ?>
您可以在__toString()
实体
ApanelUsers\Entity\Userstatus
方法
class Userstatus{
public fundtion __toString(){
return $this->getTitle() // or you can use any other method to retrurn value
}
// other properties with their related getters and setters
}
另一种方式是
<?= $user->getUserStatusid()->getTitle(); ?>
但这也会失败,因为在setUserStatusid()
你允许状态可以为null所以对于第二个选项,你需要首先检查它的ApanelUsers\Entity\Userstatus
实例是否然后调用它的相关getter
<?php
$status = $user->getUserStatusid();
if($status instanceof \ApanelUsers\Entity\Userstatus){
echo $status->getTitle();
}
?>