【发布时间】:2021-10-06 00:35:58
【问题描述】:
我已经生成随机id函数:
class CreateRandomId {
public static function get_id($my_table) {
$id = mt_rand(1000000, 9999999999);
if(self::check_id($id,$my_table)){
get_id($my_table);
}
return $id;
}
public static function check_id($id,$my_table) {
$table=DB::table($my_table)->where('id',$id)->get();
if (count($table)==0) {
return false;
}
return true;
}
}
我使用它并且它正确生成了 id 但是当我想将它保存为 id 时:
$new_user_id = CreateRandomId::get_id('users');
$user = User::create([
'id' => $new_user_id,
'social_id'=>$request->id,
'client'=> $request->client,
'username'=>$request->username,
'password'=>$password,
'email'=>$request->email,
'pics'=>$request->pics,
'role'=>'user'
]);
它不保存随机id,而是auto_incrementid
我查看这个话题How to disable Laravel eloquent Auto Increment? 但我不想删除自动增量我只想插入随机数据而不是它。
【问题讨论】:
-
确保“id”在用户模型的可填写部分
-
@dz0nika 我认为你是对的,我会尝试非常感谢
-
@dz0nika 不会触发批量分配异常。我认为你需要在你的模型中设置
public $increment = false; -
嗯,如果他的 ID 字段设置为递增,那么是的,但由于他将随机数字作为 ID,我认为情况并非如此,但仍然很好
标签: laravel insert auto-increment