我正在尝试在 Laravel Model 中将 uuid 设置为主键。我已经通过在模型中设置引导方法来完成此操作,如 此处 所示,因此每次创建和保存模型时都不必手动创建它。我有一个控制器,只需创建模型并将其保存在数据库中。
它在数据库中正确保存,但是当控制器返回 id 的值时,始终返回
它在数据库中正确保存,但是当控制器返回 id 的值时,始终返回
0
。我该如何使其实际返回在数据库中创建的值?
模型
class UserPersona extends Model
{
protected $guarded = [];
protected $casts = [
'id' => 'string'
];
/**
* Setup model event hooks
*/
public static function boot()
{
parent::boot();
self::creating(function ($model) {
$uuid = Uuid::uuid4();
$model->id = $uuid->toString();
});
}
}
控制器
class UserPersonaController extends Controller
{
public function new(Request $request)
{
return UserPersona::create();
}
}
Illuminate\Database\Eloquent\Concerns\HasUuids
在您的模型中也可以工作。 - Hmerman6006