Php 在Laravel 5中用户注册后如何运行更多逻辑

Php 在Laravel 5中用户注册后如何运行更多逻辑,php,laravel,laravel-5,Php,Laravel,Laravel 5,我正在使用Laravel 5中的默认用户注册器。当用户注册时,会话中存储了一些信息,因此在创建用户之后,我想运行一些代码来处理会话数据,存储它并将其链接到用户。我是否可以从以下内容修改注册器中的创建方法: public function create(array $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'], '

我正在使用Laravel 5中的默认用户注册器。当用户注册时,会话中存储了一些信息,因此在创建用户之后,我想运行一些代码来处理会话数据,存储它并将其链接到用户。我是否可以从以下内容修改注册器中的创建方法:

public function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['password'])
    ]);
}
为此:

public function create(array $data)
{
    $user = User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['password'])
    ]);

    // do my other logic to process session data here

    return $user;
}

还是有更好的方法

您可以使用模型事件,将此代码放置在您的模型中

public static function boot()
{
    static::created(function($model)
    {
        //do other logic here
    });
}

您还可以选择模型观察者:

<?php namespace App\Observers;

use Illuminate\Database\Eloquent\Model as Eloquent;

class UserObserver {

    public function created(Eloquent $model)
    {
        //do other logic
    }
}
\App\User::observe(new \App\Observers\UserObserver);
您可以将侦听器放在
routes.php
文件中进行测试

稍后,您可以将侦听器移动到更合适的位置,例如
服务提供商


听起来是触发事件或使用命令总线的绝佳机会。好的,提前道歉我对使用codeigniter和cakephp的PHP有很多经验,但我对Laravel是新手。我刚刚读了一点书,看了一个关于事件的教程,这似乎正是我需要做的,谢谢你的指点。所以我知道现在如何使用artisan创建事件,但是我应该把代码放在哪里触发它呢?我的注释会出现在示例代码中吗?不用担心,我们一开始都是初学者。我当然知道拉威尔有很多东西我还不能用就个人而言,我会从控制器触发事件,因此如果您的代码示例来自控制器,那么注释听起来就像您建议的那样棒。我的代码示例来自app/services/registrator.php文件。我试过这样做,但我的活动因为某些原因没有启动啊,对吧。。。我还没有在L5中使用内置的身份验证系统,所以我恐怕不能就此提供建议。