Пользовательская отметка времени копирует updated_at в $ model-> save () - PullRequest
0 голосов
/ 20 октября 2018

У меня есть таблица и связанная модель, которая имеет собственную метку времени.Миграция настроена так:

Schema::create('tests', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name');
    $table->timestamp('expire_at');
    $table->timestamps();
});

И я настроил свою модель так:

class Test {
    protected $dates = [
       'expire_at'
    ];
}

Когда я пытаюсь обновить только поле имени, он устанавливает expire_at поле такое же, как поле updated_at, а не просто его не изменяет.

$test = Test::find(1);
$test->name = "Changed Value";

// Until here, the expire_at timestamp has its true value
// but on save(), it changes expire_at to updated_at time.

$test->save();

Есть ли что-то, что я делаю неправильно с использованием protected $dates?

1 Ответ

0 голосов
/ 20 октября 2018

Вам нужно сделать столбец обнуляемым (или удалить значение по умолчанию, CURRENT_TIMESTAMP):

$table->timestamp('expire_at')->nullable();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...