对于我的 users
表,Eloquent 让我使用 id
和 increment
:
$table->increments('id');
这样就好了。每个新用户都将获得他们的 id
、1、2、3 等。
然而,id 应该是一个自动分配的字符串或整数。
我要
- 用户不知道有多少用户
- 用户 id like 至少 5 位数字 (47533) 或者是唯一的随机字符串 (f8hrcrft13)
如何使用 Eloquent 实现这一目标?
到目前为止我发现了什么:
$table->string('id', 36)->primary()
最佳答案
您可以在创建用户模型时分配 ID。
$data = [
'id' => str_random(10),
'first_name' => 'Andrej'
];
$user = User::create($data);
但是,这将忽略您默认指定的 ID。
你需要稍微编辑一下 models/User.php
并告诉你不要自动递增。
在顶部添加此属性
public $incrementing = false;
不要忘记将用户表中的列类型从 INT 更改为 VARCHAR。
关于php - Eloquent - 使用唯一的字符串或唯一的 int 作为 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22066083/