Closed
Description
- Laravel Version: 11.1.1
- PHP Version: 8.3.7
- Blueprint Version: 2.10.0
- Platform: Mac
Issue:
It's possible this is intended behavior, but feels more like a bug?
If I define a model with a column name of name
and a type enum
models:
Post:
name: enum:one,two,three
I would expect the generated factory definition to look like this
return [
'name' => $this->faker->randomElement(["one","two","three"]),
];
but instead I get
return [
'name' => $this->faker->name(),
];
Looks like the FactoryGenerator
looks for an implicit match before an explicit one:
blueprint/src/Generators/FactoryGenerator.php
Line 123 in 4485f6b
Repro:
composer create-project laravel/laravel example-app
cd example-app
composer require -W --dev laravel-shift/blueprint
php artisan blueprint:new
# fill in draft.yaml as above
php artisan blueprint:build
As a workaround I can easily change the name of the column, but as-is the generated migration ends up with $table->enum('name', ["one","two","three"]);
, so if nothing else, the logic seems to differ a bit between the Factory and Migration generators ¯\_(ツ)_/¯