1 回答

TA貢獻1887條經驗 獲得超5個贊
只需確保強制轉換為字符串且主鍵名稱正確
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $casts = [
'id' => 'string'
];
protected $primaryKey = "id";
}
如果你將 $incrementing 設置為 false,它會破壞它并始終返回 false,因為它告訴代碼該 id 不是自動生成的,因此永遠不會被獲取。
class User extends Model
{
public $incrementing = false;
// ...
}
$user = new User;
$user->save();
dd($user->id);
// null
還要確保在遷移中啟用 uuid 擴展
<?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";');
}
}
這是一個例子
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 關注
- 149 瀏覽
添加回答
舉報