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 关注
- 126 浏览
添加回答
举报