[BUG] Accessor method for parent_id on model App\Modules\ProductCatalog\Models\Category does not exist
What happened?
When running vendor/bin/sail artisan model:typer --plurals --api-resources modeltyper return this error:
Exception
Accessor method for parent_id on model App\Modules\ProductCatalog\Models\Category does not exist
at vendor/fumeapp/modeltyper/src/Actions/DetermineAccessorType.php:38
34▕ return $reflectionModel->getMethod($method);
35▕ } catch (Exception $e) {
36▕ }
37▕
➜ 38▕ throw new Exception('Accessor method for ' . $mutator . ' on model ' . $reflectionModel->getName() . ' does not exist');
39▕ }
40▕ }
41▕
+21 vendor frames
22 artisan:35
Illuminate\Foundation\Console\Kernel::handle()
I'm using NestedSet Package to manage the categories.
And applying the trait on the categories model.
<?php
namespace App\Modules\ProductCatalog\Models;
use Kalnoy\Nestedset\NodeTrait;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Category extends Model
{
use HasFactory;
use NodeTrait;
public $level;
public $fillable = [
'name',
'slug',
'parent_id',
'description'
];
public function products(): HasMany
{
return $this->hasMany(Product::class);
}
}
Environment: laravel: 10 database: postgres
Expected Behavior
The expected behavior is the output of TypeScript interfaces declarations on the console.
Steps To Reproduce
- run
vendor/bin/sail artisan model:typer --plurals --api-resources - View error
This exception is supposed to throw when it cannot determine either accessors/mutator method, think like
public function getParentAttribute(): ?self
{
return $this->where('id', $this->parent_id)->first();
}
or
protected function parent(): Attribute
{
return Attribute::make(
get: fn() => $this->where('id', $this->parent_id)->first();
);
}
Which in your case looks like its coming from that NodeTrait so I would have to see whats all in that trait.
When you run the Laravel Model Show command what is the output for this model?
This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.