如何使用Laravel在字段模式迁移中定义属性zerofill和size(2)?
Schema::create('books', function (Blueprint $table) {
$table->integer('reference')->length(2);
});
和zerofill这个领域。
我想用我的播种机:
public function run()
{
Book::create
([
'reference' => 01
]);
}
Zerofill不是SQL标准。 laravel的shema builder仅提供这些ANSI SQL标准。
但您可以使用变通方法使用原始sql语句定义它:
create_books.php
Schema::create('books', function (Blueprint $table) {
$table->integer('reference');
});
DB::statement('ALTER TABLE books CHANGE reference reference INT(2) UNSIGNED ZEROFILL NOT NULL');
如上所述,为了使您的迁移可移植,您将需要使用访问器来提供它。它看起来像这样:
Book.php模型
public function getReferenceAttribute($value)
{
if($value){
return str_pad($value, 2, '0', STR_PAD_LEFT);
}else{
return null;
}
}