Laravel モデルで uuid を主キーとして設定しようとしています。モデルを作成して保存するたびに手動で作成する必要がないように、モデルのブート方法をここで設定しました。モデルを作成してデータベースに保存するだけのコントローラーがあります。
データベースに正しく保存されますが、コントローラーが 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();
}
}