加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-14 19:42:11 所属栏目:大数据 来源:网络整理
导读:我在Laravel 5中使用默认用户注册器.当用户注册时,会话中存储了一些信息,因此在创建用户之后我想运行一些代码来处理会话数据,存储它并将其链接到用户.我是否只需修改注册器中的create方法: public function create(array $data){ return User::create([ 'na
我在Laravel 5中使用默认用户注册器.当用户注册时,会话中存储了一些信息,因此在创建用户之后我想运行一些代码来处理会话数据,存储它并将其链接到用户.我是否只需修改注册器中的create方法:

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'],'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 AppObservers;

use IlluminateDatabaseEloquentModel as Eloquent;

class UserObserver {

    public function created(Eloquent $model)
    {
        //do other logic
    }
}

你需要一个监听器给这个观察者:

AppUser::observe(new AppObserversUserObserver);

您可以将侦听器放在routes.php文件中进行测试.

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读