【发布时间】:2019-11-05 18:14:39
【问题描述】:
我在我的数据库中搜索了一个城市,当我输入“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)
}
});
});
如上所述,当我使用破折号准确键入时,它可以工作,但是当我不使用破折号键入时,它不再起作用,如何在删除“-”的同时显示结果
【问题讨论】: