2017-05-08 68 views
0

我有以下代碼:如何在變壓器Laravel中構建多個陣列?

public function transform($obj) 
{ 
    return [ 
     'id'  => (int) $obj->id, 
     'name' => $obj->name, 
     "prototype" => $obj->_prototypes()->get() 
    ]; 
} 

哪裏$obj->_prototypes()->get()是收集與場(id, name)

如何格式化新的數組一樣爲:

'name' => 'name' => $obj->name, 
"prototype" => [ 
    ["id": 1, "name" : "ok"], 
    ["id": 2, "name" : "ok 2"], 
] 

所以,我需要遍歷$obj->_prototypes()->get()變壓器對象內。

所以,我有嵌套的對象(關係)。現在我需要使用循環,即獲取嵌套對象並再次將它們組合到一個輸出對象。

回答

0

絕對看一看分形的變壓器。有非常好的特性,包括你的:http://fractal.thephpleague.com/transformers/

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

是的,但是當我嘗試變換@Gagamerov我更新我的代碼片段答案轉化對象 – Gagamerov

+0

內部對象這是行不通的。這是你在找什麼? –