【问题标题】:SYmfony2 request can't get the post variableSYmfony2 请求无法获取 post 变量
【发布时间】:2014-11-11 17:45:27
【问题描述】:

我正在尝试在 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”

我做错了什么?

【问题讨论】:

    标签: angularjs symfony-2.4


    【解决方案1】:

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

    但是它们看起来“原始”,因为您可以使用以下命令:$request->getContent();

    只需使用 $myvar = json_decode($request->getContent()) 就可以了

    【讨论】:

    • 即使我们通过api平台发帖!
    【解决方案2】:

    我根本不知道 angularjs,但是在正文中看起来像 JSON,而不是请求正文参数。

    试试:

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

    如果您要发送帖子参数,您应该会看到如下内容:

    数组 'dimensionpassed' => 字符串 'ChartOfAccounts'

    请求正文应如下所示:

    'dimensionpassed=ChartOfAccounts'

    因此,您可能只需要让 Javascript 中的 POST 正常工作(抱歉,无法帮助您)。

    【讨论】:

    • 当我这样做的时候它是空的......让我们看看棱角分明的一面
    猜你喜欢
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    相关资源
    最近更新 更多