【发布时间】:2019-12-06 16:37:26
【问题描述】:
我正在转储这个循环变量$document_id:
foreach($onboarding_data as $user_id => $document_id) {
var_dump($document_id);
}
并返回一个元素数组,就像它应该做的那样:
array(4) { [1]=> string(1) "1" [2]=> string(1) "1" [3]=> string(1) "1" [4]=> string(1) "1" }
但是当我使用 $document_id 创建对象查询时
foreach($onboarding_data as $user_id => $document_id) {
$documents = $this->em->getRepository('Entities\Documents')->findById($document_id);
var_dump($documents);
}
我的对象只包含数组第一个键的结果
array(1) { [0]=> object(Entities\Documents)#481 (3) { ["id":protected]=> int(1) ["documents":protected]=> string(8) "Form I-9" ["url":protected]=> string(7) "I-9.pdf" } }
其他键 [2]、[3]、[4] 会发生什么?为什么它们没有显示在我创建的对象中?
【问题讨论】:
-
您传入的数组中的所有值都是相同的——
1。即,您基本上是在说,“给我文件 1、1、1 和 1。” -
@AlexHowansky 哦,我明白了!我将如何查找数组的键而不是值?
-
array_keys($document_id) -
@AlexHowansky 抱歉,我遇到了语法问题。会是 $documents = $this->em->getRepository('Entities\Documents')->findBy(array_keys($document_id)); ?谢谢
标签: php foreach doctrine-orm doctrine doctrine-query