将请求数据传递到模型观察器类

时间:2018-09-20 20:25:27

标签: laravel model eloquent observer-pattern observers

我有以下模型观察者:

class UserObserver {
    /**
     * @var \Illuminate\Http\Request
     */
    protected $request;

    /**
     * UserObserver constructor.
     *
     * @param \Illuminate\Http\Request $request
     */
    public function __construct(Request $request)
    {
        $this->request = $request;
    }

    /**
     * User created
     *
     * @param User $user
     * @throws \Exception
     */
    public function created(User $user)
    {
        try {
            // Create the user's first profile for them.
            $profile = $user->profiles()->create([ 'name' => $this->request->get('username'), 'description' => null ]);

            // Set the users active profile to the one just created.
            $user->active_profile = $profile->id;
            $user->save();

        } catch(\Exception $e) {
            throw new \Exception($e->getMessage());
        }
    }
}

我还有一个用户表种子设置了新的请求:

 $request = new \Illuminate\Http\Request();
 $request->replace(['username' => $user['username']]);

目前,正在运行播种器时,正在设置请求,并且已验证该请求在播种器类中正常工作,但是,一旦到达模型观察器,请求将为空(空)。

我要达到的目的是创建一个新用户,然后为基于该用户的用户创建一个新的配置文件,我希望该配置文件具有该用户输入的名称,但在播种机正在运行。

我希望这有意义吗?

0 个答案:

没有答案