【发布时间】:2020-12-21 15:09:02
【问题描述】:
这是我用来搜索存储在我的数据库中的城市的查询
$cities = City::with([ 'translation' => function ($query) {
$query->where('language', 'en');
}, 'country.translation' => function ($query) {
$query->where('language', 'en');
} ])->whereHas('country', function($query) {
$query->whereIn('iso', [
'AL',
...
]);
})->whereHas('translation', function($query) use($location) {
$query->where('name', 'LIKE', "%{$location}%");
})->limit(5)->get();
拥有第二个whereHas 和LIKE 会使查询变得非常慢,实际上您必须等待几秒钟才能得到结果,没有它会非常快。我该如何改进
【问题讨论】: