Php 如何在Transformer Laravel中构建多阵列?
我有以下代码:Php 如何在Transformer Laravel中构建多阵列?,php,laravel,laravel-5,laravel-5.4,Php,Laravel,Laravel 5,Laravel 5.4,我有以下代码: public function transform($obj) { return [ 'id' => (int) $obj->id, 'name' => $obj->name, "prototype" => $obj->_prototypes()->get() ]; } 其中,$obj->\u prototype()->get()是带有字段(id,name)的集合
public function transform($obj)
{
return [
'id' => (int) $obj->id,
'name' => $obj->name,
"prototype" => $obj->_prototypes()->get()
];
}
其中,$obj->\u prototype()->get()
是带有字段(id,name)
的集合
如何格式化新数组,如下所示:
'name' => 'name' => $obj->name,
"prototype" => [
["id": 1, "name" : "ok"],
["id": 2, "name" : "ok 2"],
]
因此,我需要在transformer对象内部迭代$obj->\u prototype()->get()
因此,我有嵌套对象(关系)。现在我需要使用循环,即获取嵌套对象并再次将它们组合到一个输出对象。您可以使用for-each循环,在for-each循环中使用array\u push或array\u merge将循环的当前迭代合并到一个新数组中 数组\u推送文档=
array\u merge docs=您可以使用for each循环,并在for each循环中使用array\u push或array\u merge将循环的当前迭代合并到新数组中 数组\u推送文档=
array\u merge docs=一定要看看分形的变形金刚。这里有很多不错的功能,包括您的:
一定要看看分形的变形金刚。这里有很多不错的功能,包括您的:
是的,但当我尝试在已转换的内部转换对象时,它不起作用object@Gagamerov我用一段代码更新了我的答案。这就是你们要找的吗?是的,但当我试着在变换的内部变换对象时,它不起作用object@Gagamerov我用一段代码更新了我的答案。这就是你要找的吗?
class MyTransformer extends TransformerAbstract
{
public $defaultIncludes = ['prototype'];
public function transform($obj)
{
return [
'id' => (int) $obj->id,
'name' => $obj->name
]
}
public function includePrototype($obj)
{
return $this->collection($obj->_prototypes()->get(), new PrototypeTransformer);
}
}