Recibo un error extraño que no puedo resolver.
Tengo un modelo de User y también de Partner . Un usuario puede tener múltiples socios. Estoy tratando de recuperar una lista de socios que tiene el usuario. También estoy usando Laravel Sanctum como mi guardia de autenticación.
Mi código de relación es el siguiente;
En mi modelo de usuario
public function partners(): HasMany { return $this->hasMany(Partner::class); }En mi modelo de Socio
public function user(): BelongsTo { return $this->belongsTo(User::class); }Mi definición de ruta se ve así;
Route::middleware(['auth:sanctum'])->group(function () { Route::apiResource('partners', Api\Partner\PartnerController::class) ->only(['index']); });y finalmente en mi controlador;
public function index(Request $request) { return PartnerResource::collection($request->user()->partners()); }Sin embargo, cuando llego al punto final, recibo el siguiente error;
Call to undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::mapInto()No puedo resolver el problema. Cualquier idea sería muy apreciada.
Cuando está llamando al user()->partners() , devuelve Illuminate\Database\Eloquent\Relations\HasMany Instance.
El recurso necesita obtener Illuminate\Database\Eloquent\Collection Instance.
Solo tiene que llamar al user()->partners (eliminar paréntesis)
O llame al método get en Illuminate\Database\Eloquent\Relations\HasMany Instance, para obtener Collection
user()->partners()->get()