我有实体Devekoper,我需要找到具有密码并具有newreference的开发人员,但我不知道该怎么做:
/**
* Developers.
*
* @ORM\Table(name="developers")
* @ORM\Entity(repositoryClass="Artel\ProfileBundle\Entity\DeveloperRepository")
*/
class Developer extends CustomUser
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="password", type="string", length=80, nullable=true)
*/
protected $password;
/**
* @ORM\ManyToMany(targetEntity="Artel\ProfileBundle\Entity\CodeUserReference", inversedBy="alluser")
*/
protected $newreference;
我在用户的字段codereference setreference中有实体CodeUserReference
class CodeUserReference
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToOne(targetEntity="Artel\ProfileBundle\Entity\Developer", inversedBy="newreference")
*/
protected $alluser;
/**
* @ORM\Column(type="string", length=255)
*/
protected $codereference;
/**
* @Gedmo\Timestampable(on="create")
* @ORM\Column(type="datetime")
*/
protected $created_at;
我想找到所有引用谁没有引用的开发人员。我尝试:
public function getDevelopersWithRefernce()
{
$qb = $this->getEntityManager()->createQueryBuilder('d');
$qb
->select('d')
->from('ArtelProfileBundle:Developer', 'd')
->addSelect('COUNT(m.id) as nMethods')
->join('d.newreference', 'm')
->groupBy('d.id')
->orderBy("nMethods", 'DESC')
->getQuery();
$query = $qb->getQuery();
$results = $query->getResult();
return $results;
}
我有错误SQLSTATE [42S02]:找不到基本表或视图:1146表'artel.developer_codeuserreference'不存在。我需要找到有参考或没有参考的开发人员。帮助
最佳答案
就是说您CodeUserReference表不存在
所以
->join(d.newreference, 'm')
不上班。
您能告诉我们CodeUserReference类的标题吗?
您是否已完成将表添加到数据库的迁移?
检查此命令是否创建具有以下区别的文件:doctrine:migrations:diff
public function getDevelopersWithRefernce()
{
$qb = $this->getEntityManager()->createQueryBuilder('d');
$qb
->select('d')
->from('ArtelProfileBundle:Developer', 'd')
->leftJoin('d.newreference', 'm')
->where('m.codereference IS NULL')
->andWhere('d.password IS NULL')
->getQuery();
$query = $qb->getQuery();
$results = $query->getResult();
return $results;
}
关于php - 创建QueryBuilder以查找字段ManuToMany,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31399968/