observer 监听的实现 laravel 框架
监听模式 又叫观察者模式 代码之间降低解耦 降低了耦合度 。代码不会显得的臃肿
首先 创建一个 模型层 php artisan make:model models/exam/User;
然后创建 observer 监听php artisan make:observer UserObserve -models/models/exam/User
然后再Apperserviceprovider 进行注册
<?php
namespace App\Providers;
use App\Models\models\exam\User;
use App\Observers\UserObserve;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function register()
{
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//进行注册创建监听
User::observe(UserObserve::class);
Schema::defaultStringLength(191);
}
}
模型层的代码
public function index(Request $request)
{
$data=[
'username'=>'张三',
'password'=>'234'
];
\App\Models\models\exam\User::create($data);
//添加数据 监听事件监听
return ['code'=>200,'msg'=>'success','data'=>$data];
}
这个意思是当用户注册成功的时候 就进行邮件的发送 当然 也可以使用事务放到一起
遮掩干就避免信息的丢失,像一些优惠券的活动 用户 购买了以后 优惠券就要自动消失了
然后 可以使用事务保证数据的一致性