У меня здесь 4 стола. Я присоединяюсь к ним и хочу найти ключевое слово по этим столбцам. Я вижу результат, но все еще есть несколько пунктов, которые не соответствуют критериям. Каким критерием является wisata.publish = active
. Так что я сделал foreach, чтобы уничтожить элемент, который не соответствует. Но я сделал это, уменьшив количество элементов на каждой странице с нумерацией страниц.
Любая идея, как удалить элементы, но не уменьшать количество элементов на каждой странице. Или запрос неверный? Вот мой код.
$wisata = Wisata::leftJoin('kabupaten', 'kabupaten.id_kabupaten', '=', 'wisata.kabupaten_kota')
->leftJoin('kecamatan', 'kecamatan.id_kecamatan', '=', 'wisata.kecamatan')
->leftJoin('kelurahan', 'kelurahan.id_kelurahan', '=','wisata.kelurahan')
->where( function($query) use ($req) {
$query->where('wisata.nama_wisata','like', '%'.$req->keyword.'%')
->orwhere('wisata.alamat','like', '%'.$req->keyword.'%')
->orWhere('kabupaten.nama_kabupaten', 'LIKE', '%' .$req->keyword. '%')
->orWhere('kecamatan.nama_kecamatan', 'LIKE', '%' .$req->keyword. '%')
->orWhere('kelurahan.nama_kelurahan', 'LIKE', '%' .$req->keyword. '%');
})
->where('wisata.publish', '=', 1 )
->orderBy('wisata.nama_wisata', 'asc')
->paginate(6);
foreach($wisata as $index => $w )
{
if($w->publish == 0)
{
unset($wisata[$index]);
}
}