我是Laravel的新手,我正在创建一个客户端表,其中我有不同的字段,但是,我有一个名为client_number的字段,我想在laravel中生成随机数并将它们保存到该特定列而不会重复好。
任何人都可以帮助我。
非常感谢
答案 0 :(得分:4)
将这三种方法放入您将要处理客户端注册的控制器中。在store方法中,您可以添加更多客户端参数。您需要在控制器中导入客户端模型,可以通过编写use App\Client;
并请求处理程序来完成。
在第二种方法中,如果客户编号存在与否,我正在检查表。
public function store(Request $request)
{
$client = new Client;
$client->name = $request->name;
$client->client_name = $this->getClientNumber();
$client->save();
}
public function getClientNumber(){
do{
$rand = $this->generateRandomString(6);
}while(!empty(Client::where('client_number',$rand)->first()));
return $rand;
}
public function generateRandomString($length) {
$characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
答案 1 :(得分:1)
您可以使用 str_rand()或rand() 的预定义函数来获取随机数并在DB中进行检查
public function store(Request $request)
{
//Generate Random Number
do{
$randomString = str_random(2).rand().str_random(2);
$rand = "CLI_".$randomString;
}while(!empty(clients ::where('client_number',$rand)->first()));
//Insert Query
$Clients = new clients ;
$Clients ->name = $request->name;
$Clients ->client_number = $rand;
$Clients ->save();
}