Öğe kaynağı ve koleksiyon kaynağı için farklı veriler tanımlamanın mümkün olup olmadığını merak ediyordum.Laravel 5.5 Koleksiyonlar için API kaynakları (bağımsız veri)
koleksiyonu için sadece ['id', 'title', 'slug']
göndermek istiyorum ama madde kaynak gibi bir şey elde etmek istediğiniz ek ayrıntılar
['id', 'title', 'slug', 'user', etc.]
içerecektir: çünkü beklenen çalışmayacak olarak
class PageResource extends Resource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'title' => $this->title,
'slug' => $this->slug,
'user' => [
'id' => $this->user->id,
'name' => $this->user->name,
'email' => $this->user->email,
],
];
}
}
class PageResourceCollection extends ResourceCollection
{
/**
* Transform the resource collection into an array.
*
* @param \Illuminate\Http\Request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'title' => $this->title,
'slug' => $this->slug,
];
}
}
PageResourceCollection PageResource kullanır, bu nedenle
return [
'data' => $this->collection,
];
Ben PageFullResource
/PageListResource
ve PageFullResourceCollection
/PageListResourceCollection
içine kaynak çoğaltmak olabilir ama aynı sonucu elde etmek daha iyi bir yol bulmaya çalışıyorum.
Laravel, koleksiyondaki her öğe için bir “PageResource” yaratabilseydi hoş olurdu. –
@DeesOomens aslında yapıyor: sadece PageResource :: collection ($ collection); – HCK