首页 > 解决方案 > 如何将数组传递给 ::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');

以防万一这与它有关。

标签: phplaraveleloquentorm

解决方案


函数返回Collection/Enumerable ,pluck你必须调用toArray函数来获取表名数组

$permittedTables = extensiontables_registry::findmany($ids)
                             ->pluck('extensiontable_name')
                             ->toArray();


推荐阅读