Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Transformer Laravel中构建多阵列?_Php_Laravel_Laravel 5_Laravel 5.4 - Fatal编程技术网

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);
    }
}