尝试测试注册路由的 laravel 身份验证时

Posted

技术标签:

【中文标题】尝试测试注册路由的 laravel 身份验证时【英文标题】:When trying to test laravel auth for the register rout 【发布时间】:2020-09-16 01:36:39 【问题描述】:

我正在尝试在我的项目中检查 laravel 的身份验证脚手架。创建数据库并迁移后,当我想测试注册身份验证时出现此错误。

照亮\数据库\查询异常 SQLSTATE [42S22]:未找到列:1054 '字段列表'中的未知列'updated_at'(SQL:插入usersnameemailpasswordupdated_atcreated_at)值(jonas, jokansey@gmail.com, $2y$10$9yqGB0hk0O5npBcsq1ImGeRYfTvkJe6ftC5QQ.nmezckbROw6CR06, 2020-05-28 16:18:49, 2020-05-28 16:18:49)) http://todaybusiness.test/register

【问题讨论】:

您能否检查一下您在数据库中的表,检查users 表中的每一列是否存在? 【参考方案1】:

您的表缺少“updated_at”,而且大部分情况下也缺少“created_at”,那么您必须使用迁移来创建它,请按照以下步骤操作:

    使用终端创建迁移文件:

    php artisan make:migration update_users_add_timestamps
    

    在您的迁移文件中添加以下代码:

    <?php
    
    use Illuminate\Support\Facades\Schema;
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Database\Migrations\Migration;
    
    class updateUsersAddTimestamps extends Migration
    
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        
            Schema::table('users', function (Blueprint $table) 
              $table->timestamps();
        );
    
    
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    
        Schema::table('users', function (Blueprint $table) 
              $table-> dropTimestamps();
        );
    
    

    然后运行以下终端命令:

    php artisan migrate
    

【讨论】:

非常感谢。完美运行【参考方案2】:

您的用户表缺少时间戳。检查database/migrations/2014_10_12_000000_create_users_table.php

up() 表的末尾添加行$table-&gt;timestamps();

public function up()

    Schema::create('users', function (Blueprint $table) 
        ...
        $table->timestamps();
    );

【讨论】:

@QuameNass:如果有帮助,请点赞并接受我的回答。

以上是关于尝试测试注册路由的 laravel 身份验证时的主要内容,如果未能解决你的问题,请参考以下文章

将 Auth 中间件应用于所有 Laravel 路由

仅在 Laravel 中公开某些身份验证路由

Laravel with JWT - 如何为只有在未经身份验证的情况下才能看到的路由创建路由组

Laravel 在身份验证异常时自动重定向

带有身份验证的 Laravel api 路由

在Laravel中使用Middleware进行身份验证