[英]Laravel 5.2 generate random number and save to database
我是Laravel的新手,正在創建一個具有不同字段的client表,但是我還有一個名為client_number的字段,我想在laravel中生成隨機數並將其保存到該特定列中,也不要重復。
誰能幫幫我嗎。
非常感謝
將這三種方法放入要處理客戶端注冊的控制器中。 在存儲方法中,您可以添加更多客戶端參數。 您將需要在控制器中導入客戶端模型,可以通過編寫use App\\Client;
來完成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;
}
您可以使用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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.