整理一下Laravel Scout
的使用细节,包含基础搜索使用、搜索后数据整理及模型配置
搜索使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| $posts = Post::search("张三")->get();
Post::search("张三")->raw();
->within("test_posts_index")
->where('user_id', 1) ->whereIn('user_id', [1, 2])
->paginate(15)
|
搜索后数据整理
1 2 3 4
| ->query(fn (Builder $query) => $query->with('author'))
|
附:模型基础方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| public function getScoutKeyName(): mixed { return 'email'; }
public function getScoutKey(): mixed { return $this->email; }
public function shouldBeSearchable(): bool { return $this->isPublished(); }
public function toSearchableArray(): array { $array = $this->toArray(); return $array; }
protected function makeAllSearchableUsing(Builder $query): Builder { return $query->with('author'); }
|