Laravel 5.5设置迁移文件中整数字段的大小

fgw7neuy  于 2023-06-25  发布在  其他
关注(0)|答案(8)|浏览(167)

我是Laravel的新手。
现在我使用migrate命令创建一个表,但是字段的长度不适用。Laravel不提供这个选项。?
下面是我的代码:

$table->increments('id')->length(11);
$table->dateTime('created_time');
$table->integer('bank_id')->length(11);
$table->tinyInteger('is_black')->length(1);

字段is_black的长度应该是1,但它实际上被生成为4。我该如何解决这个问题?
任何建议或意见将不胜感激。
先谢谢你了

bt1cpqcv

bt1cpqcv1#

你不能这样做,但你可以使用不同类型的整数:

$table->bigInteger()
$table->mediumInteger()
$table->integer()
$table->smallInteger()
$table->tinyInteger()

https://laravel.com/docs/5.5/migrations#columns

kmbjn2e3

kmbjn2e32#

根据https://laravel.com/docs/5.1/migrations,从Laravel 5.1开始,你可以使用boolean列类型来创建一个长度为1的“类似布尔”的TINYINT(MySQL)。例如:

$table->boolean('nameOfColumn');
1szpjjfi

1szpjjfi3#

根据https://laravel.com/docs/5.5/migrations,您可以使用以下类型之一:

$table->bigInteger('votes');
$table->integer('votes');

$table->mediumInteger('votes'); 
$table->smallInteger('votes');
$table->tinyInteger('votes');
$table->unsignedBigInteger('votes');
$table->unsignedMediumInteger('votes'); 
$table->unsignedSmallInteger('votes');  
$table->unsignedTinyInteger('votes');
ruoxqz4g

ruoxqz4g4#

这是我的解决方案!在函数运行中。

$tableName = 'tblresefeage';
    $comments = 'Resumen efectividad por agencia';
    Schema::create($tableName, function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->unsignedInteger('agencia')->comment('Agencia');
        $table->date('fechacierre')->comment('Fecha cierre');           
        $table->timestamps();
    });
    DB::statement('ALTER TABLE tblresefeage MODIFY COLUMN agencia INTEGER (11);');

    Schema::table($tableName, function (Blueprint $table) {
        $table->foreign('agencia')->on('tblentage')->references('cveentage')->onDelete('cascade');
    });

    DB::statement("ALTER TABLE `$tableName` comment '".$comments."'");
4c8rllxm

4c8rllxm5#

这个代码为我工作。

$table->addColumn(
    'tinyInteger', 'field_name',
    [
        'length'   => 2,
        'default'  => '1',
        'autoIncrement' => false,
        'unsigned' => true,
        'comment'  => 'Some comments'
    ]
);
hfsqlsce

hfsqlsce6#

你可以用这种方式。祝你好运
$table->decimal('is_black',1,0);

vwhgwdsa

vwhgwdsa7#

在Laravel 10中,我没有找到任何其他方法来获取tinyint(1),但是这个:

public function up(): void
{
    Schema::create('country', function (Blueprint $table) {
        // This generate tinyint(4) default 1
        $table->tinyInteger('active', false, true)->default(1);
        $table->timestamps();
    });
    // This generate tinyint(1) default 1
    DB::statement('ALTER TABLE `country` ADD `active2` TINYINT(1) NOT NULL DEFAULT 1');
}
avkwfej4

avkwfej48#

$table->increments('id',11);
$table->dateTime('created_time');
$table->integer('bank_id',11);
$table->tinyInteger('is_black',1);

相关问题