ErrorException:php artisan migrate:fresh 期间数组到字符串的转换

ErrorException : Array to string conversion during php artisan migrate:fresh

正在尝试将列设置为 dateTime 类型,并将其默认设置为当前时间和日期。但是,我一直收到标题中提到的错误...

这个问题与'dateAccepted'字段有关,'dateSubmitted'可能也会有这个问题,但我还没有尝试过。

我使用了错误的数据类型吗?或者只是编码错误..?欢迎所有建议。 (P.S 网站新手,对于格式问题深表歉意)

public function up()
{
    Schema::create('adoption_requests', function (Blueprint $table) {
        $table->increments('id');
        $table->bigInteger('userid')->unsigned();
        $table->bigInteger('animalID')->unsigned();
        $table->date('dateSubmitted');
        $table->dateTime('dateAccepted')->default(getdate())->nullable();
        $table->date('requestAccepted');
        $table->date('staffID');
        $table->timestamps();
        //$table->boolean('$adoptionStatus')->default(0);
        $table->foreign('userid')->references('id')->on('users');
        $table->foreign('animalID')->references('id')->on('animals');

    });
}
    ErrorException  : Array to string conversion

  at C:\xampp\htdocs\AAS\vendor\laravel\framework\src\Illuminate\Database\Schema\Grammars\Grammar.php:248
    244|         }
    245|
    246|         return is_bool($value)
    247|                     ? "'".(int) $value."'"
  > 248|                     : "'".(string) $value."'";
    249|     }
    250|
    251|     /**
    252|      * Create an empty Doctrine DBAL TableDiff from the Blueprint.

  Exception trace:

  1   Illuminate\Foundation\Bootstrap\HandleExceptions::handleError("Array to string conversion", "C:\xampp\htdocs\AAS\vendor\laravel\framework\src\Illuminate\Database\Schema\Grammars\Grammar.php", [])
      C:\xampp\htdocs\AAS\vendor\laravel\framework\src\Illuminate\Database\Schema\Grammars\Grammar.php:248

  2   Illuminate\Database\Schema\Grammars\Grammar::getDefaultValue()
      C:\xampp\htdocs\AAS\vendor\laravel\framework\src\Illuminate\Database\Schema\Grammars\MySqlGrammar.php:946

  Please use the argument -v to see more details.
$table->dateTime('dateAccepted')->default(DB::raw('CURRENT_TIMESTAMP'));

这可能有帮助

编辑

解释:

函数gettime() 返回一个数组。所以你不能在 datetime 列中存储值数组。你需要 datetime.

与原始答案不同的另一种方式是,

$table->dateTime('dateAccepted')->default(now()->toDateTimeString());