我想从学说查询得到数组。我有自我参照实体
应用程序\实体\AccessModom
/**
* @ORM\ManyToOne(targetEntity="App\Entity\AccessModule", inversedBy="children")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id", nullable=true)
*/
private $parent;
/**
* @ORM\OneToMany(targetEntity="App\Entity\AccessModule", mappedBy="parent", fetch="EAGER")
* @Serializer\MaxDepth(2)
*/
private $children;
/**
* AccessModule constructor.
*/
public function __construct()
{
$this->children = new ArrayCollection();
}
在此存储库中
应用程序\实体\AccessModuleRepository
public function findAllArray()
{
return $this->createQueryBuilder('a')
->getQuery()
->getResult();
}
这种返回与子级和父级对象的匹配。但是当我想把这个查询作为数组-
退还$this-
array:3 [▼
0 => array:2 [▼
"id" => 2
"name" => "Common module"
]
1 => array:2 [▼
"id" => 3
"name" => "User Module"
]
2 => array:2 [▼
"id" => 4
"name" => "Admin Module"
]
]
退还$this-
array:3 [▼
0 => AccessModule {#5118 ▼
-id: 2
-name: "Common module"
-parent: null
-children: PersistentCollection {#5208 ▼
-snapshot: array:2 [ …2]
-owner: AccessModule {#5118}
-association: array:15 [ …15]
-em: EntityManager {#2624 …11}
-backRefFieldName: "parent"
-typeClass: ClassMetadata {#3093 …}
-isDirty: false
#collection: ArrayCollection {#5209 ▼
-elements: array:2 [▼
0 => AccessModule {#5325 ▼
-id: 3
-name: "User Module"
-parent: AccessModule {#5118}
-children: PersistentCollection {#5327 ▶}
}
1 => AccessModule {#5328 ▼
-id: 4
-name: "Admin Module"
-parent: AccessModule {#5118}
-children: PersistentCollection {#5330 ▶}
}
]
}
#initialized: true
}
}
1 => AccessModule {#5325 ▶}
2 => AccessModule {#5328 ▶}
]
如何获得数组从getResult()与引用对象?
预期结果
[
[0] => [
'id' => 1,
'name' => 'Common Module',
'parent' => null,
'children => [
[0] => [
'id' => 2,
'name' => 'User Module',
'parent' => 1,
'children' => []
],
[1] => [
'id' => 3,
'name' => 'Admin Module',
'parent' => 1,
'children' => []
]
]
],
[1] => [
'id' => 2,
'name' => 'User Module',
'parent' => 1,
'children' => []
],
[2] => [
'id' => 3,
'name' => 'Admin Module',
'parent' => 1,
'children' => []
]
]
教义数组层次结构
如果希望将嵌套的集合层次结构分解为数组而不是对象,可以使用hydration\u ARRAY\u hierarchy
常量。它与hydroe\u RECORD\u层次结构
相同,只是它使用PHP数组而不是对象。
http://doctrine.readthedocs.io/en/latest/en/manual/data-hydrators.html#nested-设置数组层次结构
public function findAllArray()
{
return $this->createQueryBuilder('a')
->getQuery()
->execute(array(), Doctrine_Core::HYDRATE_ARRAY_HIERARCHY);;
}
可以使用可选参数调用getResult方法:
return $this->createQueryBuilder('a')
->getQuery()
->getResult(Query::HYDRATE_ARRAY);
有几种不同方法可以生成查询结果: 结果数组 结果行 自定义结果对象 结果辅助方法 Class Reference 结果数组 result() 方法 该方法以**对象数组**形式返回查询结果,如果查询失败返回**空数组**。 一般情况下,你会像下面这样在一个 foreach 循环中使用它: $query = $this->db->query("YOUR QUERY"); foreach ($que
我有一个问题,使laravel查询: 我想举个例子: 我有这个但不起作用:
问题内容: 我有两个通过1:1关系连接的实体,例如: 我想创建一个Doctrine查询,在其中我可以根据中某个列的值检索数据。像这样的东西(当然不起作用): 任何帮助将非常感激 :) 问题答案: 左连接在这里也没有意义(因为where子句将使它像内部连接一样工作)
我正在使用Laravels查询生成器检索带有一些筛选选项的项目列表-我需要在此查询中进行计数: 计算“Freestyle ID”在likes表中出现的次数。 这有可能吗?返回的数据是完美的,我只需要一个自由泳的喜欢量,其中喜欢表中的自由泳ID为空。
我有一个名为的实体,另一个名为。 这就是它们之间的关系: 这是“我的存储库”实体中的查询,用于恢复具有一点Comptage属性的Computer: 问题是我很好地恢复了所选点comptage的computer,但只恢复了具有参数确定关系的computer。 在我的数据库中,有可能竞争对手没有参数化的梅苏尔数据。 我如何恢复没有参数的计算机程序和具有参数的计算机程序(在同一个queryBuilder
我想不出如何使用TypeOrm查询生成器编写以下MySql语句 从farm.reg中选择reg.id,其中grpId=“abc”; 这个选择返回的只是ID的,但我的查询生成器返回的是整个对象。 现在,我在我的NestJs服务中有这个函数,但我需要使用'map',我不想… 谢谢