英文:
Laravel Database Seeding: How to change the default name of the seeded column?
问题
在create_users_table
中,我将列的名称从'name
'更改为'username
'。然而,在设置数据库填充器时,我收到以下错误信息:
SQLSTATE[42S22]: 列未找到:1054 未知列'name
'在'field list
'中(连接:mysql,SQL:插入到users
中(name
,email
,email_verified_at
,password
,remember_token
,updated_at
,created_at
)
这是DatabaseSeeder
中的行:
$user = User::factory()->create();
我尝试更改了User模型中的fillable属性,但仍然遇到相同的问题。我不知道应该更改哪个文件。
英文:
In the create_users_table I changed the name of the column from 'name' to 'username'. However while setting up the database seeder I get the following error:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'name' in 'field list' (Connection: mysql, SQL: insert into users
(name
, email
, email_verified_at
, password
, remember_token
, updated_at
, created_at
)
This is the line in the DatabaseSeeder:
$user = User::factory()->create();
I tried changing the fillable property in the User model but still same problem. I do not know which file I should change.
答案1
得分: 0
请确保您的数据库具有正确的列名,并尝试在种子示例中插入完整的对象:
DB::table('users')->insert([
'username' => 'username',
'email' => 'myemail@email.pt',
'password' => Hash::make('mypassword')
]);
我正在使用QueryBuilder,但您始终可以在Eloquent和您的模型中执行此操作。
英文:
Be sure your database has the right column name and try to insert the full object in the seeder example:
DB:table('users')->insert([
'username'=> 'username',
'email' => 'myemail@email.pt',
'password' => Hash:make('mypassword')
]);
I am using QueryBuilder, but you can always do it Eloquent and your models.
答案2
得分: 0
我认为你正在搜索名为:
UserFactory.php
的文件
它应该位于路径:
\database\factories\
如果你找不到它,我建议检查该目录中是否有其他类似名称的文件。
要刷新数据库迁移,请使用以下命令:
php artisan migrate:refresh
要填充数据库,请使用以下命令:
php artisan db:seed
如果在迁移过程中出现错误,你可以尝试删除migrations
表,然后重新运行迁移命令。
请注意,运行php artisan migrate:refresh
命令将重置你的数据库并删除所有现有数据。
英文:
I think you are searching for a file named:
UserFactory.php
it should be located at the path:
\database\factories\
if you cannot find it, I recommend checking for any other files with similar names in that directory.
To refresh the database migration:
php artisan migrate:refresh
To seed the database:
php artisan db:seed
If you get an error during the migration process, you can try removing the migrations
table and then re-running the migration command.
Please be aware that running the php artisan migrate:refresh
command will indeed reset your database and remove all existing data.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论