Laravel 5.4:创建' Profile类实例'创建新用户

时间:2017-05-16 12:41:37

标签: php laravel laravel-5.4 artisan

在Laravel 5.4中,他们对用户身份验证系统进行了硬编码,因此当您使用artisan命令时,make:auth'一切都将在幕后为您创建,但问题是,当我的用户成功注册时,我想创建一个新的' Profile Class'并使表格列为空,直到用户填写他的个人资料,那么我可以在哪里放置用于创建用户个人资料的代码?

2 个答案:

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