Mysql Laravel:使用UUID和自动增量插入时如何获取计数器值
我的型号同时具有Mysql Laravel:使用UUID和自动增量插入时如何获取计数器值,mysql,laravel,eloquent,Mysql,Laravel,Eloquent,我的型号同时具有id和counter属性。id是UUID,计数器是由数据库自动递增的整数 两者都是唯一的,但是我依赖id作为主键。计数器只是一个人性化的名称,我有时会向用户显示它 在创建对象之前,侦听器立即给它一个UUID。这个很好用 保存记录时,MySQL会增加计数器字段。除了内存中的对象副本没有计数器值之外,这一切都很好。我可以重新加载对象以找出其计数器,但这需要另一个数据库查询 有没有一种方法可以在没有特定数据库查询的情况下找到计数器的值?例如,当创建记录时,它是否作为数据库响应的一部分返
id
和counter
属性。id是UUID,计数器是由数据库自动递增的整数
两者都是唯一的,但是我依赖id
作为主键。计数器
只是一个人性化的名称,我有时会向用户显示它
在创建对象之前,侦听器立即给它一个UUID。这个很好用
保存记录时,MySQL会增加计数器字段。除了内存中的对象副本没有计数器值之外,这一切都很好。我可以重新加载对象以找出其计数器,但这需要另一个数据库查询
有没有一种方法可以在没有特定数据库查询的情况下找到计数器的值?例如,当创建记录时,它是否作为数据库响应的一部分返回?几件事:
create(array$attributes)
您将得到您想要的。为此,您必须确保$filleble
数组包含传递给create方法的所有属性名称id
,并且忘记模型之间的自定义设置,因为默认情况下,这是关系所期望的,等等
public function secondModels()
{
return $this->hasMany(SecondModel::class);
}
FirstModel::id
,SecondModel::id
,SecondModel::first_model_id
<代码>第一个\u模型,第二个\u模型
作为表名。避免和/或跳过这种统一是以后的许多定制工作。我并不是说这不能完成,但这是很多非首次成功的工作
id
字段名,则可以使用访问者创建计算字段:
/**
* Get the user's counter.
*
* @return string
*/
public function getCounterAttribute(): string
{
return (string)$this->id;
}
$user->counter
调用它
$table->uuid('uuid4');
create()
和save()
将从数据库返回创建的对象,而insert()
将不会这样做 几件事:
create(array$attributes)
您将得到您想要的。为此,您必须确保$filleble
数组包含传递给create方法的所有属性名称id
,并且忘记模型之间的自定义设置,因为默认情况下,这是关系所期望的,等等
public function secondModels()
{
return $this->hasMany(SecondModel::class);
}
FirstModel::id
,SecondModel::id
,SecondModel::first_model_id
<代码>第一个\u模型,第二个\u模型
作为表名。避免和/或跳过这种统一是以后的许多定制工作。我并不是说这不能完成,但这是很多非首次成功的工作
id
字段名,则可以使用访问者创建计算字段:
/**
* Get the user's counter.
*
* @return string
*/
public function getCounterAttribute(): string
{
return (string)$this->id;
}
$user->counter
调用它
$table->uuid('uuid4');
说了所有这些,我只想说,
create()
和save()
将从数据库返回创建的对象,而insert()
将不会这样做 请不要介意分享您的代码片段,因为理想情况下,当您执行$object->save()或以任何其他方式设置和保存属性时,$object确实在数据库中存储了与该记录相对应的精确值,因为Elount会根据文档返回存储的对象:请介意分享一段代码片段,说明您的操作,因为理想情况下,当您执行$object->save()或以任何其他方式设置和保存属性时,$object确实具有存储在数据库中的与该记录相对应的精确值,因为eloquent会根据文档2返回存储的对象。你应该参考你在这里所说的。3.这是错误的。Eloquent不需要id
它需要主键@LinusJuhlin 2需要更多的解释,我担心这会超出最初的问题。我尽可能地使这些用法合理化。当然,任何额外的问题也可以得到充分的回答。3如果我们谈论的变量名是$primaryKey
,或者$this->primaryKey
(取决于范围),那么您是对的,但我要说的是,它的值应该是id
,后面是一堆代码期望值(例如,子表中的外键用于引用,避免关系方法中的可空参数等)2.你应该参考你在这里谈论的内容。3.这是错误的。雄辩者不期望id
它期望主键。@LinusJuhlin 2需要更多的解释,我担心它会从最初的问题开始。我合理化了(的文本)我尽可能多地使用这些方法。当然,任何附加的问题都可以得到充分的回答。3如果我们谈论变量名,你是对的