laravel SQLSTATE[42S22]:未找到列:1054 Unknown column 'email_verified_at' in 'field list'

yqkkidmi  于 2023-10-22  发布在  其他
关注(0)|答案(4)|浏览(151)

嗨,我正在使用laravel v5.5,当我运行此命令时,我得到以下错误

php artisan migrate --seed

请告诉我如何修复错误:
SQLSTATE[42S22]:未找到列:1054 Unknown column 'email_verified_at' in 'field list'(SQL:插入到用户(名称,电子邮件,电子邮件_验证_at,密码,创建_at,更新_at)值(Admin Admin,email protected(https://stackoverflow.com/cdn-cgi/l/email-protection),2020-02-27 13:17:35,$2y$10$0 J3IWuCGVzgfPlP8UgfOK.MjNs2R.m5Jri43SPK3VXSy1NDZHKt4u,2020 - 02 - 27 13:17:35,2020-02-27 13:17:35)

在Connection.php行452

SQLSTATE[42S22]:未找到列:1054 Unknown column 'email_verified_at' in 'field list')
如果我使用laravel向数据库添加新的列,你能帮助我如何做到这一点。
先谢谢你了。

mwecs4sa

mwecs4sa1#

请确保您的用户工厂属性=您的用户表属性(未自动签名或可能为“可空”),如
在您的UserFactory

public function definition()
{
    return [
        'name' => $this->faker->name,
        'email' => $this->faker->unique()->safeEmail,
        'email_verified_at' => now(),
        'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
        'remember_token' => Str::random(10),
    ];
}

用户表中,

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}
dly7yett

dly7yett2#

你必须创建一个迁移。Laravel提供了一个身份验证系统,只需使用php artisan make:auth
它将在database/migrations/00xx[...].php内部生成一个迁移,要应用此迁移,您必须运行命令php artisan migrate
这将创建所有的表和列。一旦完成,您就可以使用认证系统。
如果您想创建自己的迁移(例如添加新列),可以运行:php artisan make:migration add_address_to_users_table(在users表中添加列address)。
这将在database/migrations中创建一个新文件夹,您只需使用此文档编辑它:https://laravel.com/docs/5.8/migrations

0dxa2lsx

0dxa2lsx3#

有两种方法可以解决此问题
正如他们在评论部分提到的,你使用laravel v5.5,并从更高版本中获得一个种子文件,该文件具有新列email_verified_at

第一条路

从seeder文件中删除email_verified_at列的任何种子

第二条路

users迁移文件中,将其编辑为如下所示

public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            ...........
            $table->timestamp('email_verified_at')->nullable();
            ...........
            $table->timestamps();
        });
    }

根据你的laravel版本,我建议你使用第一种方法是从你的seeder中删除email_verified_at,因为它的功能在laravel v5.5和更低版本中不支持。

gpnt7bae

gpnt7bae4#

SQLSTATE[42S22]:未找到列:1054 Unknown column 'profile_photo_path' in 'field list'
在Laravel 10中,你只需要进入你的数据库,用户表,然后在用户表中添加字段profile_photo_path,然后刷新你的应用程序。
另外,请确保将APP_URLAPP_URL=http://localhost更改为APP_URL=http://127.0.0.1:8000。使用此命令链接您的存储:php artisan storage:link

相关问题