我们在项目中是如果需要使用到ElasticSearch,那么第一步就是在保持数据库的数据跟ElasticSearch的数据同步
那么接下来我们在laravle中操作一下这个实现的过程
创建控制器
命令:php artisan make:controller EditController
这个控制器就相当于是用户进行了提交了添加数据,然后使用dispatch这个方法,这个方法里边传的是一个模型操作实例
<?php namespace App\Jobs; use App\Models\Goods; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; /** * 使用队列的方式在把数据保存数据时同步至elasticsearch */ class Test implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * Create a new job instance. * * @return void */ protected $goods; public function __construct(Goods $goods) { $this->goods = new Goods; } /** * Execute the job. * * @return void */ public function handle() { $data = $this->goods->toEsArray(); app('es')->index([ 'index' => 'goods', 'type' => '_doc', 'id' => $data['id'], 'body' => $data, ]); } }