Pass parameter resource to collection

NewResouce

<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;

class NewResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
     *

     */

    public function toArray($request)
    {
        $data = [
            [
                'id' => 1,
                'name' => 'Neeraj choudhary',
                'email' => 'nomail@mail.com'
            ],
            [
                'id' => 2,
                'name' => 'Ritesh',
                'email' => 'ritesh@mail.com'
            ],
            [
                'id' => 3,
                'name' => 'Mohan',
                'email' => 'mohan@mail.com'
            ]
        ];

        return TestResource::customCollection($data,'abc');
    }



}


TestResouce
<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;

class TestResource extends JsonResource
{
    protected static $data;

    public static function customCollection($resource, $data)
    {

      self::$data = $data;
      return parent::collection($resource);
    }

    public function toArray($request)
    {
        return [

            'id' => $this['id'],
            'name' => $this['name'],
            'email' => $this['email'],
            'test'=>self::$data

        ];
    }


}

Comments