php - 如何将数组传递给 ::with() - Lumen/Laravel
问题描述
$permittedTables
我想加入的表名数组也是如此coretable
。为此,我想使用 Model::with(),如下所示:
$join = coretable::with($permittedTables)->get();
但是,执行上述代码时出现此错误:
Argument 1 passed to Illuminate\Database\Eloquent\Builder::parseWithRelations() must be of the type array, object given, called in E:\aether-backend\vendor\illuminate\database\Eloquent\Builder.php on line 1043
最让我困惑的是这个实际是一个数组,所以我真的不明白为什么它实际上会抛出这个错误 xD
不过,谁能告诉我这种方法是否真的可行?如果是这样,我该怎么做?
编辑:这就是数组的生成方式:
$permittedTables = extensiontables_registry::findmany($ids)->pluck('extensiontable_name');
以防万一这与它有关。
解决方案
函数返回Collection/Enumerable ,pluck
你必须调用toArray
函数来获取表名数组
$permittedTables = extensiontables_registry::findmany($ids)
->pluck('extensiontable_name')
->toArray();
推荐阅读
- firebase - 使用 nvm 在 IntelliJ IDE 中运行 firebase 命令/脚本
- php - 构造 XML 数据时如何使用 FOREACH?
- typescript - Typescript ChildNode:`parentElement`和/或`parentNode`为空?
- express - 将 mqtt 订阅绑定到节点 ejs 和 alpine 状态
- html - 无法摆脱 8px 边距
- html - 如何正确地用两个元素打断单词?
- arrays - format 指定类型 'int *' 但在 C 语言中键入 scanf("%d", (*(pArr[i])).age) 时,参数的类型为 'int' [-Wformat];
- assembly - 函数的序言可以写在它的框架之外吗?
- mysql - mysql查询错误:带有条件的SQL求和
- node.js - Lambda 代理的可怕的畸形响应