2.1 基本文件的文件的生成
//在app/Providers/EventServiceProvider 中的注册事件与监听间的映射关系protected $listen = ['App\Events\PostSaved' => ['App\Listeners\SaveDataToCache',],];//命令行执行php artisan event::generate//程序执行完成后,会在app/Events目录以及app/Listen目录下生成对应的映射文件PostSaved.php 以及 SaveDataToCache.php
2.2文件生成完毕后,定义事件类
public function __construct(Post $Post){$this->Post = $post;}
2.3 定义监听器类
public function handle(PostSaved $event){//$post = $event->post;Log::info("保存成功.id 为:".$post->id);}
2.4 事件的触发
事件的触发,我们需要在代码中完成,比如我们可以在指定方法中添加public function store(Request $request){$title = $request->input('title');$content = $request->input('content');$post = new Post();$post->title = $title;$post->content = $content;$post->save();//注意 use Illuminate\Support\Facades\Event;Event::fire(new PostSaved($post));//或者使用event(new PostSaved($post));return redirect()->route('post.show',['post'=>$post]);}
最后,在我们访问store方法时,就会自动触发该事件了