我想在用户注册时自动设置一个唯一的随机字符串(str_random)作为用户ID。
我在哪里放置代码?
'id' => str_random(32);
我认为它应该放在 User.php (模型)中。
答案 0 :(得分:3)
您可以在模型中执行此操作:
public static function boot()
{
parent::boot();
static::creating(function($table)
{
$table->id = str_random(32);
});
}
答案 1 :(得分:0)
利用creating
eloquent事件劫持User对象的创建并在那里设置随机ID。
答案 2 :(得分: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');
}