php Laravel数据库种子:如何更改系统初始列的默认名称?

lmvvr0a8  于 2023-06-20  发布在  PHP
关注(0)|答案(2)|浏览(117)

在create_users_table中,我将列的名称从'name'更改为'username'。但是,在设置数据库seeder时,我收到以下错误:
SQLSTATE[42S22]:未找到列:1054“field list”中的未知列“name”(连接:mysql,SQL:插入usersnameemailemail_verified_atpasswordremember_tokenupdated_atcreated_at
这是DatabaseSeeder中的一行:$user = User::factory()->create();
我尝试在User模型中更改fillable属性,但仍然存在同样的问题。我不知道该改哪个文件。

2admgd59

2admgd591#

我想你正在寻找一个文件名为:UserFactory.php
它应该位于以下路径:\database\factories\
如果您找不到它,我建议您检查该目录中具有类似名称任何其他文件。
要刷新数据库迁移,请执行以下操作:

php artisan migrate:refresh

要设置数据库种子,请执行以下操作:

php artisan db:seed

如果在迁移过程中出现错误,可以尝试删除migrations表,然后重新运行迁移命令。
请注意,运行php artisan migrate:refresh命令确实会重置数据库并删除所有现有数据。

fnx2tebb

fnx2tebb2#

确保数据库具有正确的列名,并尝试在seeder示例中插入完整对象:

DB:table('users')->insert([
'username'=> 'username',
'email' => 'myemail@email.pt',
'password' => Hash:make('mypassword')
]);

我使用的是QueryBuilder,但你可以随时使用Eloquent和你的模型。

相关问题