2014-04-14 58 views
1

我想在用戶註冊時自動設置唯一的隨機字符串(str_random)作爲用戶標識。如何在用戶註冊時在Laravel中自動設置隨機字符串ID

我把代碼放在哪裏?

'id' => str_random(32);

我認爲應該在user.php的(模型)去。

+0

爲了任何人來到這裏,從谷歌,像我這樣的:*不要使用str_random的ID生成*,你將* *碰上勾結。 –

回答

0

我居然通過執行以下操作來解決問題嘍。我不確定這是否是最佳做法。

UsersController.php

public function store() 
    { 
     $data = Input::all(); 

     $data['id'] = str_random(32); // THIS IS THE LINE 

     $validator = Validator::make($data = Input::all(), User::$rules); 
     if ($validator->fails()) 
     { 
      return Redirect::back()->withErrors($validator)->withInput(); 
     } 
     User::create($data); 
     return Redirect::route('users.index'); 
    } 
1

你可以在你的模型做到這一點:

public static function boot() 
{ 
    parent::boot(); 

    static::creating(function($table) 
    { 
     $table->id = str_random(32); 
    }); 
} 
相關問題