Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过条令获取结果作为数组(水合物数组)时,如何获取关联实体?_Php_Arrays_Symfony_Doctrine - Fatal编程技术网

Php 通过条令获取结果作为数组(水合物数组)时,如何获取关联实体?

Php 通过条令获取结果作为数组(水合物数组)时,如何获取关联实体?,php,arrays,symfony,doctrine,Php,Arrays,Symfony,Doctrine,我正在使用以下命令从mysql数据库获取数据: $array = $this->em->getRepository(Documents::class)->findAll(); 这是输出: 对于我的例子,我想直接获取一个数组,因此我创建了一个函数: $array = $this->em->getRepository(Documents::class)->getArray(); 存储库: public function getArray() {

我正在使用以下命令从mysql数据库获取数据:

$array = $this->em->getRepository(Documents::class)->findAll();
这是输出:

对于我的例子,我想直接获取一个数组,因此我创建了一个函数:

$array = $this->em->getRepository(Documents::class)->getArray();
存储库:

   public function getArray()
    {
      return   $this->getEntityManager()
               ->getRepository(Documents::class)
               ->createQueryBuilder('e')
               ->select('e')
               ->getQuery()
               ->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY);
      }
已创建数组,但缺少某些字段:


我怎样才能同时获取页面和产品?我希望我的数据以日期+时间戳的形式显示:2019年12月2日

您需要通过将其添加到select:

公共函数getArray { 返回$this->getEntityManager ->getRepositoryDocuments::类 ->createQueryBuilder'e' ->选择“e”、“p” ->leftJoin'e.products','p' ->获取查询 ->getResult\Doctrine\ORM\Query::水合物数组; }
更多信息:

忘记了需要另一个设置的核心类

只需使用getArrayResult函数而不是getResult。它返回所有数据的数组

$query = $em->createQuery("SELECT test FROM namespaceTestBundle:Test test");
$tests = $query->getArrayResult();
QuerygetResult:检索对象的集合。结果是 纯对象的普通集合或 对象嵌套在结果行中

QueryGetAryResult:检索嵌套数组中的数组图 在很大程度上可以与由生成的对象图互换 QuerygetResult用于只读目的

我刚刚测试了以嵌套数组形式返回所有数据结果的方法:

另一个答案中的第二个解决方案也会起作用,但它们的作用方式不同:

另请参见此答案和存储库


根据这一点,findAll不接受多个参数。

返回对象数组有什么问题?这是因为我以后需要一个数组,因为我用其他数组和这个数组一起构建了一个数组。如果我可以直接获取阵列,那么性能会更快!非常感谢。还有一个问题,这是您的代码products=>array:9[…9]的输出有没有直接捕获产品id的方法?products=>2?这是我的想法->leftJoin'e.products.id',p',但这不起作用您的建议不适用于持久性集合,因此它只适用于页面,而不适用于产品我认为此平面数组不会从实体中添加子项和父项。getArrayResult是getResult\Doctrine\ORM\Query::水合物数组的别名@Dilek我不完全理解你的意思,我测试了ArrayResult,但输出仍然只有0=>array:4[▼ id=>167 uuid=>086aa56ed3 name=>Hauptorner timestamp=>DateTime@1575285037{57472…1}]现在持久集合被添加到arrayTalk中,对我来说很简单,我不是英语,谷歌翻译得不好:你得到完整的数组了吗?