Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Laravel Schema Builder:Erstellen einer binären (16) Spalte

Erweitern Sie die MySqlGrammar Klasse, z. in app/MySqlGrammar.php :

namespace App;

use Illuminate\Support\Fluent;

class MySqlGrammar extends \Illuminate\Database\Schema\Grammars\MySqlGrammar {

    protected function typeRealBinary(Fluent $column) {
        return "binary({$column->length})";
    }

}

Verwenden Sie dann ein Makro, um Ihren eigenen Spaltentyp hinzuzufügen:

DB::connection()->setSchemaGrammar(new \App\MySqlGrammar());

Blueprint::macro('realBinary', function($column, $length) {
    return $this->addColumn('realBinary', $column, compact('length'));
});

Schema::create('table', function(Blueprint $table) {
    $table->realBinary('url_hash', 16);
});