1 回答

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
只需確保強(qiáng)制轉(zhuǎn)換為字符串且主鍵名稱正確
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $casts = [
'id' => 'string'
];
protected $primaryKey = "id";
}
如果你將 $incrementing 設(shè)置為 false,它會(huì)破壞它并始終返回 false,因?yàn)樗嬖V代碼該 id 不是自動(dòng)生成的,因此永遠(yuǎn)不會(huì)被獲取。
class User extends Model
{
public $incrementing = false;
// ...
}
$user = new User;
$user->save();
dd($user->id);
// null
還要確保在遷移中啟用 uuid 擴(kuò)展
<?php
class AddUuidExtensionToPostgre extends Migration
{
public function up()
{
DB::statement('CREATE EXTENSION IF NOT EXISTS "uuid-ossp";');
}
public function down()
{
DB::statement('DROP EXTENSION IF EXISTS "uuid-ossp";');
}
}
這是一個(gè)例子
Schema::create('users', function (Blueprint $table) {
$table->uuid('id');
$table->primary('id');
// ...
});
DB::statement('ALTER TABLE users ALTER COLUMN id SET DEFAULT uuid_generate_v4();');
- 1 回答
- 0 關(guān)注
- 147 瀏覽
添加回答
舉報(bào)