Я выполняю поиск, чтобы найти город в своей базе данных, когда я набираю "Aulnay-sous-bois" без проблем, я не могу найти нужный город, но когда я набираю "Aulnay sous bois", он не работает!
Я уже пытался удалить символы, но он не работает
мой контроллер кода:
public function verifyCity(Request $request, CityRepository $cityRepository): JsonResponse
{
if($request->isXmlHttpRequest()) {
$data = [];
$searchs = $cityRepository->findBySearchCity($request->request->get('city'));
/**
* @var $searchs City[]
*/
foreach ($searchs as $search) {
$data[] = [
'name' => $search->getName(),
'zipCode' => $search->getZipCode()
];
}
return new JsonResponse(['city' => $data, 'ok' => 1]);
}
return new JsonResponse(['error' => 'not found']);
}
мой репозиторий
public function findBySearchCity($search,$zipCode = null)
{ //SELECT * FROM `city` WHERE name LIKE "%la courn%" OR zip_code LIKE "78%"
$query =$this->createQueryBuilder("c")
->where('c.name LIKE :search')
->setParameter('search', "%".$search."%");
if($zipCode != null) {
$query->orWhere('c.zipCode LIKE :zipCode')
->setParameter('zipCode', $zipCode."%");
}
return $query->getQuery()->setMaxResults(5)
->getResult();
}
и Js:
var cityTabs = [];
$('#registration_form_city').keyup(function () {
var city = this.value;
var data = {
city: city,
};
$.ajax({
url: $('#wizardProperty').attr('data-verify-city'),
type: 'POST',
data: data,
dataType: 'JSON',
success: function (data) {
cityTabs = [];
if(data.ok == 1) {
$.each(data.city,function (k, v) {
cityTabs.push(v.name);
});
}
console.log(cityTabs);
$( "#registration_form_city" ).autocomplete({
source: cityTabs
});
},
error: function (data) {
console.log(data)
}
});
});
как объяснено выше, когда я печатаю точно с черточками, это работает, но когда я печатаю без черточки, это больше не работает, как отображать результаты, удаляя "-"