Как организовать запрос на выборку статей sql laravel

140
09 января 2022, 16:10

Статьи

Регионы

Есть таблица publication содержит полный адрес Россия, городской округ Краснодар, хутор Ленина адрес получаем из Яндекс карт поле называется place. Список регионов и город относящихся к региону Краснодарский край, г. Краснодар. теперь необходимо по имени региона выбирать посты . Но если использовать обычный like %Краснодарский край, г Краснодар%. выборка не происходит. Как можно всю строку региона и города сопоставить с адресом поста ,если есть хоть одно вхождение строки региона в адрес поста?

public function ajaxPagination(Request $request)
    {
        $regName='';
        if(empty($request->region)==false){
            Cookie::forever('region',$request->region);
            $regName=$request->region;
        }
        else{
            $regName=$name = Cookie::get('region', 'Краснодарский край Краснодар');
        }
  $posts = Publication::where('place','LIKE', "%$regName%")->latest()->paginate(6);

        if ($request->ajax()) {
            return view('paginate/ajaxPagPost', compact('posts'));
        }

        return view('paginate/ajaxPagPost',compact('data'));
    }
Answer 1

Правильное решение это сделать связь по ID постов и регионов. Но если такой возможности нет, тогда можно сделать иначе, но если будут встречаться одинаковые названия городов в разных регионах, выборка будет неверной.

В таблице регионов лучше иметь отдельно название города - Краснодар . У Вас получиться следующая структура:

name = Краснодарский край, г. Краснодар |
nameCity = Краснодар

И уже делать Like выборку постов по nameCity

$posts = Publication::where('place','LIKE', "%Краснодар%")

Или если если возможность с яндекс карт получать город отдельно, то делать выборку по столбцу city уже через равенство.

$posts = Publication::where('city', "Краснодар")

READ ALSO
Настроить кол-во выводимых постов в Wordpress

Настроить кол-во выводимых постов в Wordpress

Вывожу посты определённой рубрики на главнуюВ таком виде выводятся все посты рубрики, а как сделать, чтобы выводилось несколько последних?

87