Я вырезал всю логику с основного контроллера с помощью Ajax Search, поместил его в пользовательский контроллер и отобразил его в моем шаблоне:
{{render(controller('MainBundle:SearchCertificate:searchCertificate'))}}
Но Ajax не работает.
У меня есть запрос Ajax на панели инструментов symfony (при отправке формы) следующим образом:
POST xhr 200/app_dev.php/main/order/create 820ms 14f184
Я установил точки останова (в php-коде), но PHPStorm пропускает их (нет результата).
Я нашел ответ, я забыл создать маршрутизацию для моего нового контроллера. И измените url в Ajax (url: "{{ path('app.admin.search.certificate')}}"
)
маршрутизатор:
app.admin.search.certificate:
path: /admin/serach-certificate
defaults: { _controller: MainBundle:SearchCertificate:searchCertificate }
Ajax:
$.ajax({
type: "POST",
url: "{{ path('app.admin.search.certificate')}}",
dataType: 'json',
data: $('#form_search_certificate').serialize(),
success: function (data) {
$("#search_result").empty();
var dataParse = JSON.parse(data.result_search);
if (dataParse.length !== 0) {
for (var i = 0; i < dataParse.length; i++) {
$.tmpl(template, {
"id": dataParse[i].id,
"dpId": dataParse[i].dp_id,
"name": dataParse[i].name,
"price": dataParse[i].price,
"discount": dataParse[i].discount.value,
"description": dataParse[i].description,
"image": dataParse[i].image,
"companyName": dataParse[i].company.name,
"categoryName": dataParse[i].category.name,
"cart_id": data.cart_id
}).appendTo("#search_result");
}
} else {
$.tmpl(empty, {}).appendTo("#search_result");
}
}});