Laravel 播种机 - 使用唯一 ID (UUID) 更新所有记录
Laravel Seeder - Update all records with a Unique ID (UUID)
我刚刚为我的用户添加了一个 UUID table。
我想用唯一的 UUID 更新所有记录。
在我的播种机中,我有以下代码生成 UUID 并填充数据库中的这个新列。但是,生成的UUID在每一行中都是相同的。
public function run()
{
DB::table('users')->update([
'public_id' => Uuid::generate(4)->string
]);
}
我希望为数据库中的每个用户生成 UUID。所以每一行都有一个唯一的 UUID。
它不起作用,因为它只为所有用户数据生成一个 uuid。
您需要遍历每个模型数据并生成唯一的uuid并保存。
public function run(){
$users = \App\User::get();
try{
DB::beginTransaction();
foreach($users as $user){
$user->public_id = Uuid::generate(4)->string;
$user->save();
}
DB::commit();
}
catch(Exception $e){
DB::rollback();
}
//if incase you get exception during database seeding.
}
我刚刚为我的用户添加了一个 UUID table。
我想用唯一的 UUID 更新所有记录。
在我的播种机中,我有以下代码生成 UUID 并填充数据库中的这个新列。但是,生成的UUID在每一行中都是相同的。
public function run()
{
DB::table('users')->update([
'public_id' => Uuid::generate(4)->string
]);
}
我希望为数据库中的每个用户生成 UUID。所以每一行都有一个唯一的 UUID。
它不起作用,因为它只为所有用户数据生成一个 uuid。
您需要遍历每个模型数据并生成唯一的uuid并保存。
public function run(){
$users = \App\User::get();
try{
DB::beginTransaction();
foreach($users as $user){
$user->public_id = Uuid::generate(4)->string;
$user->save();
}
DB::commit();
}
catch(Exception $e){
DB::rollback();
}
//if incase you get exception during database seeding.
}