bmstanley/laravel-nomad

为Laravel迁移添加额外功能。

v2.0.1 2019-11-15 20:50 UTC

This package is auto-updated.

Last update: 2024-09-16 07:54:28 UTC


README

Latest Version on Packagist Software License Total Downloads

此Laravel包为Illuminate数据库迁移提供额外功能。目前唯一的额外功能是能够指定自定义数据库字段类型,但可根据需求添加新功能。

支持的版本

5.5

安装

通过Composer

$ composer require bmstanley/laravel-nomad

Laravel 5.5及更高版本无需配置。该包将自动发现。

使用方法

自定义字段类型

Laravel的迁移提供了许多在支持的数据库中使用的标准字段类型的方法,但并非详尽无遗。此外,一些数据库有可以启用的扩展,这些扩展可以添加新的字段类型。不幸的是,无法使用内置的迁移方法创建这些新数据类型的字段。

例如,PostgreSQL有一个“citext”模块,允许轻松进行不区分大小写的匹配。该模块添加了一个新的“citext”字段数据类型,用于存储不区分大小写的字符串数据。内置的迁移方法没有创建“citext”字段的方法,因此需要在表创建后添加直接的“ALTER”语句。

此包添加了一个新的passthru方法,允许在迁移中定义自定义数据类型。passthru方法可以用来添加任何数据类型的字段,因为指定的类型只是传递到模式语法。

passthru方法需要两个参数:数据类型和字段名称。如果需要,可以使用第三个可选参数来指定实际的数据类型定义。也可以将definition方法链接到一起以指定实际的数据类型定义。以下是一个使用示例:

class CreateUsersTable extends Migration {
    public function up()
    {
        Schema::create('users', function(Blueprint $table)
        {
            $table->increments('id');
            $table->passthru('citext', 'name');
            $table->passthru('citext', 'title')->nullable();
            $table->passthru('string', 'email', 'varchar(255)')->unique();
            $table->passthru('string', 'password')->definition('varchar(60)');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::drop('users');
    }
}

贡献

欢迎贡献。请参阅CONTRIBUTING以获取详细信息。

安全

如果您发现任何安全相关的问题,请通过电子邮件patrick@shiftonelabs.com联系,而不是使用问题跟踪器。

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件