的錯誤是:標識ID丟失雞尾酒的查詢\ RecipesBundle \實體\成分發送參數從阿賈克斯到控制器
所以,問題是,控制器不獲取參數ingredientId,我我嘗試過很多例子和教程,但沒有任何幫助。也許有一些容易發生的明顯的錯誤,我錯過了?我怎麼能從ajax函數傳遞參數給控制器?
的錯誤是:標識ID丟失雞尾酒的查詢\ RecipesBundle \實體\成分發送參數從阿賈克斯到控制器
所以,問題是,控制器不獲取參數ingredientId,我我嘗試過很多例子和教程,但沒有任何幫助。也許有一些容易發生的明顯的錯誤,我錯過了?我怎麼能從ajax函數傳遞參數給控制器?
您正在創建一個新的空的Request對象,它顯然沒有當前請求的請求信息......它將爲空。
您可以將一個參數添加到addIngredientToUser
,名爲$request
,並使用type-hinting作爲Request $request
。這樣Symfony2會給你實際的當前請求的請求對象填充正確的請求信息。
工作代碼
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'
對不起,一個評論(現在刪除)建議更改var名稱,所以我做了。情況並非如此,即使使用成分,它仍然無法正常工作 – user2542809
您可以在ajax()調用之前在JS中提醒(成分)嗎? – atn
和我應該在阿賈克斯發送作爲參數傳遞給控制器的參數$要求? – user2542809
你不需要發送任何東西,'Request $ request','Post $ post'和一些其他的動作函數參數不必顯式傳遞,它們會被Symfony2自動填充。 –
嘗試調試 - 通過使用var_dump($ _ GET,$ _POST,$ _REQUEST)檢查發佈的數據是否到達您的控制器;' –