Есть таблица 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'));
}
Правильное решение это сделать связь по ID постов и регионов. Но если такой возможности нет, тогда можно сделать иначе, но если будут встречаться одинаковые названия городов в разных регионах, выборка будет неверной.
В таблице регионов лучше иметь отдельно название города - Краснодар . У Вас получиться следующая структура:
name = Краснодарский край, г. Краснодар |
nameCity = Краснодар
И уже делать Like выборку постов по nameCity
$posts = Publication::where('place','LIKE', "%Краснодар%")
Или если если возможность с яндекс карт получать город отдельно, то делать выборку по столбцу city уже через равенство.
$posts = Publication::where('city', "Краснодар")
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Вывожу посты определённой рубрики на главнуюВ таком виде выводятся все посты рубрики, а как сделать, чтобы выводилось несколько последних?