Hi, I got into this problem when using a ResourceCollection
Model
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Template extends Model
{
use HasFactory;
protected $fillable = ['name', 'user_id'];
public function user(): BelongsTo
{
return $this->belongsTo(User::class, 'user_id', 'id');
}
public function pages(): HasMany
{
return $this->hasMany(Page::class);
}
}
Resource
<?php
namespace App\Http\Resources;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\ResourceCollection;
class TemplateCollection extends ResourceCollection
{
/**
* Transform the resource collection into an array.
*
* @return array<int|string, mixed>
*/
public function toArray(Request $request): array
{
return [
'data' => $this->collection->transform(function ($template) {
return [
'id' => $template->id,
'name' => $template->name,
'user' => UserResource::make($template->whenLoaded('user')),
'created_at' => $template->created_at,
'updated_at' => $template->updated_at,
];
})->all(),
];
}
}
I have a similar one that works just fine, but I can't seem to figure this one out