Level 3
Don't mind this, guys.
I guess it is a bug of Laravel.
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Php 8.1.0 is being run on my laptop.
I made enum for user status .
namespace App\Enums;
enum UserStatus: string
{
case ACTIVE ='Active';
case DELETED ='Deleted';
}
and I made command to fill up users table .
$users = [
[
'uid'=>'superadmin',
'status'=> UserStatus::ACTIVE->name,
],
[
'uid'=>'admin',
'status'=> UserStatus::ACTIVE->name,
],
];
foreach( $users as $item ){
User::create( $item );
}
But it gives following error.
ValueError
"ACTIVE" is not a valid backing value for enum "App\Enums\UserStatus"
at vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php:1109
1105▕ $this->attributes[$key] = null;
1106▕ } elseif ($value instanceof $enumClass) {
1107▕ $this->attributes[$key] = $value->value;
1108▕ } else {
➜ 1109▕ $this->attributes[$key] = $enumClass::from($value)->value;
1110▕ }
1111▕ }
1112▕
1113▕ /**
+10 vendor frames
11 app/Console/Commands/MakeDataCommand.php:78
Illuminate\Database\Eloquent\Model::__callStatic("create")
+13 vendor frames
25 artisan:37
Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
If I use following code, it works fine.
[
'uid'=>'admin',
'status'=> UserStatus::ACTIVE->value,
],
or in any php file,
use App\Enums\UserStatus;
echo UserStatus::ACTIVE->name;
It works fine.
I want to use UserStatus::ACTIVE->name for inserting data into table.
How can I use 'name' not 'value' of Enum ?
Is this a limit of Enum of Php 8.1 ?
Don't mind this, guys.
I guess it is a bug of Laravel.
Please or to participate in this conversation.