2017-09-25 87 views
0

我正從一個內置的查詢結果使用佞(Laravel的ORM)如何通過Laravel dataTransformer傳遞所有的Eloquent(ORM)結果?

$query = Lawyer::whereHas('user', function($q) use ($request) { 
      $q->where('is_active', true); 
     }); 
$result = $query->get() 

我想將結果傳遞我獲得throught一個trasformer class LawyerTransformer extends TransformerAbstract{}一些數據添加到結果。

當我試試這個:

$this->collection($query->get(), new LawyerTransformer()) 

我有以下問題:Method [collection] does not exist.

我怎麼能轉換所有使用變壓器的結果?

+0

你嘗試過什麼文件https://laravel.com/docs/5.5/collections#method-transform在說?順便說一句的結果'''$查詢 - >的get()'''已經是一個集最有可能 – Maantje

回答

1

你可以使用在集合實例轉換方法來實現此類似的東西是會遞增1陣列中的所有值的示例;

$collection = collect([1, 2, 3]); 

$collection->transform(function ($item, $key) { 
    return (new IncrementTransformer)->transform($item); 
}); 

而變差動類

class IncrementTransformer 
{ 
    public function transform($item) 
    { 
     return $item += 1; 
    } 
} 

你也許可以寫這個乾淨了一點,但你的基本思路。

+0

謝謝,這是我在等待迴應。我只是不明白集合對象以及如何使用它的變換器對象。現在我懂了。謝謝 ! – Gauthier

相關問題