我正在使用symfony和twig,并试图使用ajax路由到存在的控制器函数。我试图到达的路由似乎被附加到调用ajax的当前路由(页面)中。是什么导致了这一切,我做错了什么?我是这方面的中间人。提前感谢你的努力。
ajax看起来像;
$.ajax({url: "{{ path('material-stock_check') }}/" + quoteRing.materialId + "/" + quoteRing.gaugeId + "/" + decimal, success: function (results) {
if (results.length === 0) {
quoteRing.findStripWidthAlternates();
}
}});控制器看起来就像
/**
* Check if the strip width is in the Inventory
* @Route("/check/{materialId}/{gaugeId}/{decimal}", defaults={"materialId" = 0, "gaugeId" = 0, "decimal" = 0}, name="material-stock_check")
* @Method("GET")
*/
public function checkStripWidthAction (Request $request, $materialId, $gaugeId, $decimal)
{
$em = $this->getDoctrine()->getManager();
$materialStocks = $em->getRepository('UniflyteBundle:MaterialStock')->findAllByParams(['widthDecimal' => $decimal, 'materialId' => $materialId, 'gaugeId' => $gaugeId]);
if ($request->isXmlHttpRequest()) {
if (null === $materialStocks) {
return new JsonResponse('failure');
}
$results = [];
foreach ($materialStocks as $result) {
$results[] = [
'gaugeId' => $result->getGauge()->getId(),
'materialId' => $result->getMaterial()->getId()
];
}
return new JsonResponse($results);
}
}当ajax被调用时,我得到
No route found for "GET /uniflyte/quote-ring/new/%7B%7B%20path('material-stock_check')%20%7D%7D/93/347/3.45" (from "http://localhost:8088/uniflyte/quote-ring/new/rolled-ring")ajax路由看起来附加在现有路由上。我做错了什么?
发布于 2018-06-07 09:47:47
{path(.)}似乎没有像@Omar Alves所说的那样被twig评估。
尝试以下操作,在小枝文件中声明一个变量
<script>
var url = '{{ path("material-stock_check") }}';
</script>然后再用它
发布于 2018-06-06 22:30:49
您在路由文件中声明路径了吗?
https://stackoverflow.com/questions/50725501
复制相似问题