ErrorException: преобразование массива в строку во время миграции php artisan: fresh - PullRequest
0 голосов
/ 01 мая 2019

Попытка установить столбец в качестве типа dateTime и по умолчанию в качестве текущего времени и даты.Тем не менее, я получаю сообщение об ошибке, упомянутое в заголовке ...

Эта проблема связана с полем «dateAccepted», вероятно, у «dateSubmitted» также будет эта проблема, но я не пыталсяеще.

Я использую неправильный тип данных?или просто закодировано неправильно ..?Все советы приветствуются.(PS новый на сайте, извиняюсь за форматирование)

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.

1 Ответ

0 голосов
/ 01 мая 2019
$table->dateTime('dateAccepted')->default(DB::raw('CURRENT_TIMESTAMP'));

это может помочь

Редактировать

Пояснение:

функция gettime() перенастраивает массив. Таким образом, вы не можете хранить массив значений в столбце datetime. тебе понадобится datetime.

Еще один способ, кроме первоначального ответа:

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