在 symfony 2 控制器中,每次我想从帖子中获取值时,我都需要运行:
$this->getRequest()->get('value1');
$this->getRequest()->get('value2');
有没有办法将这些合并到一个返回数组的语句中?Zend 的 getParams() 之类的东西?
您可以$this->getRequest()->query->all();
获取所有 GET 参数并$this->getRequest()->request->all();
获取所有 POST 参数。
所以在你的情况下:
$params = $this->getRequest()->request->all();
$params['value1'];
$params['value2'];
有关 Request 类的更多信息,请参阅http://api.symfony.com/2.8/Symfony/Component/HttpFoundation/Request.html
使用最近的 Symfony 2.6+ 版本作为最佳实践,请求作为带有操作的参数传递,在这种情况下,您不需要显式调用 $this->getRequest(),而是调用 $request->request->all()
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
use Symfony\Component\HttpKernel\Exception\NotAcceptableHttpException;
use Symfony\Component\HttpFoundation\RedirectResponse;
class SampleController extends Controller
{
public function indexAction(Request $request) {
var_dump($request->request->all());
}
}
由于您在控制器中,因此为操作方法提供了一个Request
参数。
您可以使用 访问所有 POST 数据$request->request->all();
。这将返回一个键值对数组。
使用 GET 请求时,您可以使用$request->query->all();
对于Symfony 3.4,您可以访问GET和POST的数据,就像这样
邮政:
$data = $this->request->request->all();
得到:
$data = $this->request->query->all();