Laravel 5.2生成随机数并保存到数据库

时间:2016-07-13 19:08:29

标签: php laravel random numbers

我是Laravel的新手,我正在创建一个客户端表,其中我有不同的字段,但是,我有一个名为client_number的字段,我想在laravel中生成随机数并将它们保存到该特定列而不会重复好。

任何人都可以帮助我。

非常感谢

2 个答案:

答案 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();
}