Skip to content

Commit b475d48

Browse files
committed
fix toArray method
1 parent ae15fbe commit b475d48

File tree

2 files changed

+28
-10
lines changed

2 files changed

+28
-10
lines changed

src/Resources/Json/Resource.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ public function __construct($resource, ?string $message = null)
2929
* Create a new anonymous resource collection.
3030
*
3131
* @param mixed $resource
32-
* @return \App\Jsonable\Resources\ResourceCollection
32+
* @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection
3333
*/
34-
public static function collection($resource, ?string $message = null)
34+
public static function collection($resource)
3535
{
36-
return tap(new ResourceCollection($resource, $message ?? static::$message ?? null), function ($collection) {
36+
return tap(new ResourceCollection($resource, static::class, static::$message ?? null), function ($collection) {
3737
if (property_exists(static::class, 'preserveKeys')) {
3838
$collection->preserveKeys = (new static([]))->preserveKeys === true;
3939
}
@@ -48,6 +48,6 @@ public static function collection($resource, ?string $message = null)
4848
*/
4949
public function toResponse($request)
5050
{
51-
return json()->success($this->resource->toArray(), static::$message ?? null);
51+
return json()->success($this->toArray($request), static::$message ?? null);
5252
}
5353
}

src/Resources/Json/ResourceCollection.php

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,41 @@
33
namespace Pharaonic\Laravel\Jsonable\Resources\Json;
44

55
use Illuminate\Http\Resources\Json\ResourceCollection as IlluminateResourceCollection;
6+
use Illuminate\Http\Resources\Json\ResourceResponse;
67
use Illuminate\Pagination\AbstractCursorPaginator;
78
use Illuminate\Pagination\AbstractPaginator;
89
use Illuminate\Support\Arr;
910

1011
class ResourceCollection extends IlluminateResourceCollection
1112
{
1213
/**
13-
* Create a new resource instance.
14+
* The name of the resource being collected.
15+
*
16+
* @var string
17+
*/
18+
public $collects;
19+
20+
/**
21+
* Response message
22+
*
23+
* @var string
24+
*/
25+
public static $message = null;
26+
27+
/**
28+
* Create a new anonymous resource collection.
1429
*
1530
* @param mixed $resource
31+
* @param string $collects
32+
* @param string|null $message
1633
* @return void
1734
*/
18-
public function __construct($resource, ?string $message = null)
35+
public function __construct($resource, $collects, ?string $message = null)
1936
{
20-
parent::__construct($resource);
37+
$this->collects = $collects;
38+
self::$message = $message;
2139

22-
$this->resource = $this->collectResource($resource);
23-
if ($message) $this->message = $message;
40+
parent::__construct($resource);
2441
}
2542

2643
/**
@@ -33,8 +50,9 @@ public function toResponse($request)
3350
{
3451
if ($this->resource instanceof AbstractPaginator || $this->resource instanceof AbstractCursorPaginator)
3552
return $this->preparePaginatedResponse($request);
53+
3654

37-
return json()->success($this->resource->toArray(), $this->message ?? null);
55+
return json()->success($this->toArray($request), static::$message ?? null);
3856
}
3957

4058
/**

0 commit comments

Comments
 (0)