我使用UUID作为laravel中的主键
UUID不是由eloquent生成的,而是由postgresql中的默认值生成的
默认值为uuid_generate_v1mc()
。此功能来自uuid-ossp
包。正确生成了id。
但现在问题了。
例如,我正在创建一个用户:
$user = User::create(['email' => 'adsf', 'name' => 'adsf', 'password' => 'adf'])
这将返回没有id的用户模型。我发现我必须在模型上做fresh()
才能获得默认值。但是当我这样做时,我得到null
。我认为这是因为新功能需要id。但是没有它。
用户模型有public $incrementing = false;
。这样设置正确。
创建它时,如何获得完整的用户模型(以干净的方式)?对于用户来说,电子邮件是唯一的,因此我可以根据名称获取用户。但是对于其他表格,这可能不起作用。