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

标签 php laravel laravel-5

我在 Laravel 5 中使用默认的用户注册器。当用户注册时, session 中存储了一些信息,所以在创建用户后我想运行一些代码来处理 session 数据,存储它并链接它给用户。我是否可以修改注册器中的创建方法:

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
    });
}

http://laravel.com/docs/5.0/eloquent#model-events

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

<?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 文件中进行测试。

稍后您可以将监听器移动到更合适的位置,例如 ServiceProvider

http://laravel.com/docs/5.0/eloquent#model-observers

关于php - 如何在 Laravel 5 用户注册后运行更多逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28617970/

相关文章:

laravel - 在Docker之后运行的Nginx上的随机502/503错误(在ECS群集+ ALB上)

php - nginx 和 php5-fpm 对 Laravel 应用程序的响应非常慢

php - Laravel HasManyThrough 关系空输出

php - Laravel 5.1 服务器 - 找不到类

php - Laravel 具有两种不同的用户类型

PHP ""与 ''

php - Laravel 尝试检查用户是否与帖子有关系

php - 如何找出确切的 Throwable 类是什么?

php - Laravel 5 Socialite - cURL 错误 77 : error setting certificate verify locations

php - 无法在动态链接库 c :\wamp\bin\php\php5. 6.31\ext\phpcurl.dll 中找到 libssh2_scp_recv2