Я пытаюсь установить uuid в качестве первичного ключа в Laravel модели. Я сделал это, установив метод загрузки в моей модели как стабильный здесь , поэтому мне не нужно создавать его вручную каждый раз, когда я хочу создать и сохранить модель. У меня есть контроллер, который просто создает модель и сохраняет ее в базе данных.
Он правильно сохраняется в базе данных, но когда контроллер возвращает значение 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();
}
}