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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |