Как сделать столбец временных меток неизменяемым при миграции в Laravel 7?

#laravel #migration #laravel-7

#laravel #миграция #laravel-7

Вопрос:

Я работаю над проектом и хочу сделать столбец временных меток в базе данных неизменяемым. В Symfony я знаю, как это сделать, но в Laravel я не понимаю.

 class CreateUsersTable extends Migration
{
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('email')->unique();
            $table->string('verification_code')->nullable();
            $table->timestamp('accept_policy_at');
        });
    }
}
  

Комментарии:

1. mysql не поддерживает неизменяемые столбцы, и поэтому ваша миграция, даже если может существовать какой-то метод, который, похоже, это сделает, он не сработает (вы можете что-то сделать с триггерами на стороне DB или аксессором в модели)

2. В sql нет никакого способа изменить столбец. Но вы можете создать accept_policy_at один раз, а затем не обновлять это. Как и created_at столбец в laravel, это поле столбца никогда не обновлялось после его вставки в таблицу.

3. спасибо за советы! 🙂