我刚刚开始使用Symfony。我把一个测试页面(API)放在一起,并在我使用Request:getContent()中传递JSON主体。这在我的开发机器上运行良好(正如预期的那样)(Mac OS X 10.11.4,MAMP和PHP 5.6.10。当我部署到测试服务器时,Ubuntu Server 16.04 LTS和PHP 7.0.4会抛出错误:
request.CRITICAL: Uncaught PHP Exception Symfony\Component\Debug\Exception\FatalThrowableError: "Fatal error: Using $this when not in object context" at /var/www/html/symfony_api/var/bootstrap.php.cache line 1008 {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Fatal error: Using $this when not in object context at /var/www/html/symfony_api/var/bootstrap.php.cache:1008)"} []
简单地注释掉请求行并使用普通的PHP来使用file_get_contents('php:// input')来获取正文,这导致类在两台机器上按预期工作。
感谢您的帮助。
答案 0 :(得分:2)
getContent()
metod不是Request
类(http://api.symfony.com/2.8/Symfony/Component/HttpFoundation/Request.html#method_getContent)的静态方法,请使用:
$request->getContent();