ooxif / laravel-spec-schema
此包已被弃用且不再维护。未建议替代包。
扩展Laravel的Schema/Grammar/Blueprint以描述驱动程序的具体功能
1.0.4
2016-06-15 20:41 UTC
Requires
- php: >=5.4.0
- illuminate/database: 5.0.*||5.1.*||5.2.*
Suggests
- ooxif/laravel-query-param: Treats binary data in a correct way with Laravel's database system (Eloquent)
This package is not auto-updated.
Last update: 2024-07-06 17:33:14 UTC
README
laravel-spec-schema
扩展Laravel的Schema/Grammar/Blueprint以描述驱动程序的具体功能。
安装
composer require "ooxif/laravel-spec-schema:1.0.*"
然后
- 将
'Ooxif\LaravelSpecSchema\SpecSchemaServiceProvider',
添加到config/app.php
中的providers
。 - 在
config/app.php
的aliases
中将'Schema' => 'Illuminate\Support\Facades\Schema',
替换为'Schema' => 'Ooxif\LaravelSpecSchema\Facades\Schema',
。
示例
use Ooxif\LaravelSpecSchema\Blueprint; Schema::create('table_name', function (Blueprint $table) { // Blueprint extends Illuminate\Database\Schema\Blueprint. // add a BINARY column if the driver is MySQL, // otherwise falls back to default binary(). $table->myBinary('column_name', 8); // VARBINARY/TINYBLOB/MEDIUMBLOB/LONGBLOB also falls back to default binary(). $table->myVarBinary('column_name', 16); $table->myTinyBlob('column_name'); $table->myMediumBlob('column_name'); $table->myLongBlob('column_name'); // TINYTEXT falls back to default text(). $table->myTinyText('column_name'); // add `collate` $table->string('column_name')->collate('utf8_bin'); });
使用您自己的Schema Builder/Grammar/Blueprint类
class MyMySqlBuilder extends Ooxif\LaravelSpecSchema\MySql\Builder // extends Illuminate\Database\Schema\MySqlBuilder { // your code here. } class MyMySqlGrammar extends Ooxif\LaravelSpecSchema\MySql\Grammar // extends Illuminate\Database\Schema\Grammars\MySqlGrammar { // your code here. } class MyBlueprint extends Ooxif\LaravelSpecSchema\Blueprint // extends Illuminate\Database\Schema\Blueprint { // your code here. } // setBuilderClass(string $driverName, string $className) Schema::setBuilderClass('mysql', 'MyMySqlBuilder'); // setGrammarClass(string $driverName, string $className) Schema::setGrammarClass('mysql', 'MyMySqlGrammar'); // setBlueprintClass(string $className) Schema::setBlueprintClass('MyBlueprint'); Schema::create('table_name', function ($table) { $table instanceof MyBlueprint; // true $table->getBuilder() instanceof MyMySqlBuilder; // true $table->getBuilder()->getGrammer() instanceof MyMySqlGrammar; // true });