我有一个非常简单的数据库表来存储广告。请注意,下面是我的文件的简短形式,我离开了附加字段。
广告表
我创建了一个广告实体:
class Advert
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="advert_title", type="string", length=255, nullable=true)
*/
private $advertTitle;
/**
* @var string
*
* @ORM\Column(name="advert_title", type="text", length=255, nullable=true)
*/
private $advertText;
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="adverts")
* @ORM\JoinColumn(name="advert_user_id", referencedColumnName="id")
*/
private $user;
/**
* Set user
*
* @param \Advert\Entity\User $user
* @return Advert
*/
public function setUser(\Advert\Entity\User $user = null)
{
$this->user = $user;
return $this;
}
/**
* Get user
*
* @return \Advert\Entity\User
*/
public function getUser()
{
return $this->user;
}
我现在正在尝试用特定的用户ID读出所有广告。这很简单:
Select * From advert Where advert_user_id = '10'
因此,我使用以下查询创建了一个Repository文件。
public function findAdvertsByUser($userID)
{
$userID = 18; // static for testing
$query = $this->_em->getRepository($this->getEntityName())->createQueryBuilder('a')
->where('a.user=:userid' )
->setParameter('userid', $userID)
->getQuery()->getResult();
// Below to check query and parameters used:
$sql=$query->getSQL();
$parameters=$query->getParameters();
echo $parameters;
网站崩溃,我检查了用户ID的参数是什么结果: Doctrine \ Common \ Collections \ ArrayCollection @ 000000004a00fe4400000000f5af5615
我太初衷了解这里出了什么问题。有人可以帮忙并给我一个提示吗?非常感谢你提前。
答案 0 :(得分:0)
您忘记在注释中编写实体的完整路径
* @ORM\ManyToOne(targetEntity="User", inversedBy="adverts")
固定:
* @ORM\ManyToOne(targetEntity="\Advert\Entity\User", inversedBy="adverts")