将参数从ajax发送到控制器

时间:2014-04-30 12:10:28

标签: jquery ajax symfony controller

错误是:鸡尾酒\ RecipesBundle \ Entity \ Ingredient

的查询缺少标识符ID

所以,问题是控制器没有得到参数ingredientId,我尝试了很多例子和教程,但没有任何帮助。也许还有一些我错过的容易出现的明显错误?我如何将参数从ajax函数传递给控制器​​?

2 个答案:

答案 0 :(得分:1)

你正在创建一个新的空的Request对象,它显然没有当前请求的请求信息......它将是空的。

您可以将参数添加到名为addIngredientToUser的{​​{1}},并使用类型提示为$request。这样,Symfony2将为您提供填充了正确请求信息的当前请求的实际请求对象。

答案 1 :(得分:0)

工作代码

public function addIngredientToUserAction(Request $request) {
    $usr = $this->getUser();
    $id = $request->get('ingredient');
    $ingredientEntity = $this->getDoctrine()->getRepository('CocktailsRecipesBundle:Ingredient')->find($id);
    $usr->addIngredient($ingredientEntity);

    return $this->render('CocktailsRecipesBundle:Default:menu.html.twig');
}

在您对先前回答的评论中,您犯了一个错误

$id = $request->get('id');
                     ^^ - should be 'ingredient'