php - 将值传递给其他实体 Symfony
问题描述
我需要做的是将不同实体内许多不同值的列表导出为 .csv。我需要在特定日期创建的每个引用都具有相关值。
我所做的首先是按日期查找所有对象并将它们放入一个数组中。
$parcelRepo = $this->getDoctrine()->getRepository(Parcel::class);
$dateToday = new \DateTime("now");
$parcels = $parcelRepo->findBy([
'date_add' => $dateToday
]);
然后,在 foreach 循环中,我找到与每个宗地实体相关的值。这是我遇到问题的地方,我不明白如何访问与我的第一个包裹实体不在同一个表中的值。我也不需要使用 SQL。
这是我得到“只有变量应该通过引用传递”错误的代码。
$array = [];
foreach ($parcels as &$p) {
$array.array_push(
$p->getDeliveryOrder()->getProduct()->getAccount()->getCoclico(),
"1",
"",
$p->getDeliveryOrder()->getUser()->getLogin(),
$p->getDeliveryOrder()->getProduct()->getCode(),
$p->getInternalReference(),
$p->getDeliveryOrder()->getProduct()->getCode()+"0"+$p->getNumber(),
"121",
$p->getName(),
$p->getAddress4(),
$p->getAddress1(),
$p->getAddress2(),
$p->getAddress3(),
"téléphone", //TODO
$p->getPostalCode(),
$p->getCity(),
\DateTime::createFromFormat('Ymd',$dateToday),
"",
"",
"0"
);
}
我想我需要使用 QueryBuilder 但想知道是否还有其他方法可以做我需要的事情,因为 QueryBuilder 接近 SQL(据我了解)。
此外,由于我需要在一行中导出每个 foreach 值,因此我需要一个多维数组。但是我没有研究这个问题,因为我什至无法获得我需要的值。
解决方案
所以问题来自
$array.array_push(
这段代码实际上合并了 $array 和 array_push() 返回值,array_push() 第一个参数应该是你想要推入的数组(通过引用发送),因为你实际上是发送一个值而不是一个变量,所以这个错误出现。
这是 array_push https://www.php.net/manual/ro/function.array-push.php的文档, 所以它实际上应该是
array_push($array, ...);
但是正如 Ricardo 给你留下的评论,这段代码并不是真正需要的,你可以从查询中获取这样的格式化数据,链接多个关系调用,如:
$p->getDeliveryOrder()->getProduct()->getAccount()->getCoclico()
并不是真正可取的,但如果你认为你不能这样做,那么解决方法就是正确编写 array_push 。
推荐阅读
- python - 函数“int() 参数必须是字符串”中的错误
- java - 如何解决球衣引起的“从多个位置扫描”警告
- ruby-on-rails - 使用 Slim 在 Nanoc 中将变量从内容传递到布局
- c# - 使用 unmamagedexports 从 Access VBA 调用 C# DLL 时出现 VBA 错误 49 和错误 424
- laravel - 如何在有作业运行时将 laravel 部署到 docker 容器中
- java - 使用数据库实现 Rest 测试
- performance - Kotlin 中的 get 和 [] 有什么区别?
- django - Django:每小时重置模型的特定字段
- java - 拒绝访问从 firebase 检索数据
- vuejs2 - Vue.js 3.2.1 下 Gauge.js 组件未创建