如何使用Laravel在字段模式迁移中定义属性zerofill和size(2)?
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lgtk-3
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lgdk-3
C:/msys64/mingw64/lib\libgobject-2.0.a(libgobject_2_0_la-gtype.o):(.text+0x99b0): multiple definition of `DllMain'
C:/msys64/mingw64/lib\libgdk_pixbuf-2.0.a(gdk-pixbuf-io.o):(.text+0x1f10): first defined here
collect2.exe: error: ld returned 1 exit status
和zerofill这个字段。
我想用我的播种机:
Schema::create('books', function (Blueprint $table) {
$table->integer('reference')->length(2);
});
答案 0 :(得分:5)
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');
答案 1 :(得分:0)
如上所述,为了使您的迁移可移植,您需要使用访问器来提供。它看起来像这样:
Book.php模型
public function getReferenceAttribute($value)
{
if($value){
return str_pad($value, 2, '0', STR_PAD_LEFT);
}else{
return null;
}
}