SYmfony2请求无法获取post变量

时间:2014-11-11 17:45:28

标签: angularjs symfony-2.4

我试图在symfony 2.4控制器中获取POST请求的变量。我通常没有任何问题,但对于这一个...

这就是我打电话给控制器的方式:

var deferred = $q.defer();
     $http({method:'POST',data:{dimensionpassed:dimension},url:Routing.generate('_API_getTree')}).success(function(result){
         deferred.resolve(result); 
      });                

return deferred.promise;

现在,当我查看控制台时,我可以看到帖子请求:

JSON
dimensionpassed
    "ChartOfAccounts"
Source
{"dimensionpassed":"ChartOfAccounts"}

这是控制器:

public function _API_getTreeAction(Request $request)
{
$test = $request->getContent();
var_dump($test);
$test =  $request->request->get('dimensionpassed');
var_dump($test);
}

第一个var转储给了我 " {" dimensionpassed":" ChartOfAccounts"}"

所以有一些东西!

但第二个只是" NULL"

我做错了什么?

2 个答案:

答案 0 :(得分:2)

显然,Angularjs $ http post变量不会转到$ _POST变量,因此不可能将它们放在$ request-> request-> all()中。

然而,它们显示为“原始”,因为您可以使用它们:$ request-> getContent();

只需使用$ myvar = json_decode($ request-> getContent())即可实现技巧

答案 1 :(得分:1)

我根本不知道angularjs,但它看起来像是身体中的JSON,而不是请求身体参数。

尝试:

var_dump($request->request->all());

如果您要发送帖子参数,您应该看到类似的内容:

  

array'dimensionsed'=>字符串'ChartOfAccounts'

请求正文应该类似于:

  

'dimensionpassed = ChartOfAccounts'

所以你可能只需要让你的Javascript工作正常(不能抱歉)。