【发布时间】:2021-10-08 01:24:33
【问题描述】:
我正在处理一个 Laravel 项目,该项目有两个现有的列,这些列设置为字符串,并拥有一个视觉上令人愉悦的布尔值 true 或 false。
我正在尝试在 Laravel 迁移中将这些列从 string 更改为 boolean,但需要转换列中的现有值,例如,如果记录的列值具有 @ 值987654326@,需要变成0。
我当前修改这些列的迁移似乎无法自动实现,我该如何实现?
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddColumnsToNotificationContactsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('notification_contacts', function (Blueprint $table) {
$table->boolean('canNotify')->change();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('notification_contacts', function (Blueprint $table) {
//
});
}
}
我明白了:
SQLSTATE[HY000]:一般错误:1366 不正确的整数值:第 1 行的列“canNotify”为“false”(SQL:ALTER TABLE notification_contacts CHANGE canNotify canNotify TINYINT(1) NOT NULL)
【问题讨论】:
-
这能回答你的问题吗? Laravel data migrations