在Laravel 5.4中,他们对用户身份验证系统进行了硬编码,因此当您使用artisan命令时,make:auth'一切都将在幕后为您创建,但问题是,当我的用户成功注册时,我想创建一个新的' Profile Class'并使表格列为空,直到用户填写他的个人资料,那么我可以在哪里放置用于创建用户个人资料的代码?
答案 0 :(得分:1)
在RegisterController
中,您可以覆盖registered
功能。
用户成功注册后直接调用此函数。
/**
* The user has been registered.
*
* @param \Illuminate\Http\Request $request
* @param mixed $user
* @return mixed
*/
protected function registered(Request $request, $user)
{
// Create a profile here
}
或者,您也可以直接在用户模型上使用模型事件执行此操作
class User extends Authenticatable
{
protected static function boot()
{
parent::boot();
static::creating(function($user) {
// Create profile here
});
}
}
答案 1 :(得分:1)
在您创建新用户后立即在app\Http\Controllers\Auth\RegisterController.php
方法的create()
中执行此操作:
use App\Profile; // <-- Import this at the top
protected function create(array $data)
{
$user = User::create([ // <-- change this as you see fit
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
Profile::create(['user_id' => $user->id]);
return $user;
}