Ketika saya menentukan nama fungsi sebagai default kolom tabel, ini dibungkus dengan tanda kutip sehingga ketika dijalankan fungsi tidak dijalankan, disimpan sebagai string.
Ini memberikan kesalahan untungnya karena UUID col tidak dapat memiliki nilai string default jenis ini.
Schema::create('products', function(Blueprint $table)
{
$table->uuid('id')->default('gen_random_uuid()')->primary('products_pkey');
$table->string('name')->nullable();
$table->string('max_projects')->nullable();
$table->timestamps();
$table->softDeletes();
});
Coba dengan DB::raw
:
$table->uuid('id')->default(DB::raw('gen_random_uuid()'))->primary('products_pkey');
Anda tidak dapat menggunakan fungsi sebagai nilai default di MySQL. Itu harus konstan. Untuk menghasilkan UUID, Anda harus menggunakan pemicu atau melakukannya secara manual.
gen_random_uuid()
adalah fungsi Postgre.
Komentar yang paling membantu
Coba dengan
DB::raw
: