我正在使用 Doctrine 2 ORM,Zendframework 2
角色实体中的实体属性如下所示
/**
*
* @ORM\Column(type="string")
*/
protected $name;
/**
*
* @ORM\OneToMany(targetEntity="\Application\Entity\Role", mappedBy="parent")
*/
protected $children;
/**
*
* @ORM\ManyToOne(targetEntity="\Application\Entity\Role", inversedBy="children")
*
*/
protected $parent;
Mysql 表是这样的。
我正在寻找的结果是一个数组。有一点很关键,数组中的任何条目在出现值之前都必须添加为键,因此顺序非常重要。
即 [site-manager] => 如果 [guest] => 在它之前不存在,则 [site-manager] => 来宾不能作为第一个条目(0 索引),因为来宾(值)作为键不存在于数组中,因此 [guest] => 将即使它作为表中的第二条记录输入也是第一位的
Array(
[guest] =>
[site-manager] => guest
[company-manager] => site-manager
[member] => guest
[staff] => member
[internalstaff] => member
[sales] => staff
[manager] => sales,internalstaff
[admin] => manager
)
我在我的控制器中运行此代码,它返回空数组
$qb = $objectManager->createQueryBuilder();
$qb->select('r, p')
->from('\Application\Entity\Role', 'r')
->innerJoin('r.parent','p', 'with','p.id = r.id')
//->where('b.id = ?1')
->orderBy('r.id', 'ASC');
$data = $qb->getQuery()->getArrayResult();
任何帮助将不胜感激