shiftonelabs / laravel-nomad
为 Laravel 迁移添加额外功能。
Requires
- php: >=5.4.0
- illuminate/database: >=4.1
- illuminate/support: >=4.1
Requires (Dev)
- laravel/framework: >=4.1
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.0
- shiftonelabs/codesniffer-standard: 0.*
- squizlabs/php_codesniffer: 2.*
This package is auto-updated.
Last update: 2024-09-16 05:04:27 UTC
README
这个 Laravel/Lumen 包为 Illuminate 数据库迁移提供了额外功能。目前唯一的额外功能是可以指定自定义数据库字段类型,但可以根据需求添加新功能。
支持的版本
4.1, 4.2, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 6.x
本包已在 Laravel 4.1 至 Laravel 6.x 上进行了测试,尽管它可能在发布的新版本上继续工作。本节将更新以反映实际测试的版本。
安装
通过 Composer
$ composer require shiftonelabs/laravel-nomad
一旦更新了 composer 并安装了包,就需要加载服务提供者。
Laravel 5.5+, 6.x (5.5, 5.6, 5.7, 5.8, 6.x)
本包使用自动包发现。服务提供者将自动注册。
Laravel 5.0 - 5.4 (5.0, 5.1, 5.2, 5.3, 5.4)
对于 Laravel 5.0 - 5.4,打开 config/app.php
并在 providers 数组中添加以下行
ShiftOneLabs\LaravelNomad\LaravelNomadServiceProvider::class,
Laravel 4 (4.1, 4.2)
对于 Laravel 4,打开 app/config/app.php
并在 providers 数组中添加以下行
'ShiftOneLabs\LaravelNomad\LaravelNomadServiceProvider',
Lumen 5.0+, 6.x (5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 6.x)
对于 Lumen 5.0+, 6.x,打开 bootstrap/app.php
并在“注册服务提供者”部分下添加以下行
$app->register(ShiftOneLabs\LaravelNomad\LaravelNomadServiceProvider::class);
使用方法
自定义字段类型
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'); } }
更新日志
本包维护一个更新日志。请参阅 CHANGELOG 了解详细信息。
贡献
欢迎贡献。请参阅 CONTRIBUTING 了解详细信息。
安全性
如果您发现任何安全问题,请通过电子邮件 patrick@shiftonelabs.com 联系,而不是使用问题跟踪器。
致谢
许可证
MIT许可(MIT)。请参阅许可文件获取更多信息。