在symfony 2控制器中,每次我想从帖子中获取值时我都需要运行:
$this->getRequest()->get('value1');
$this->getRequest()->get('value2');
有没有办法将这些合并到一个会返回数组的语句中?有什么像Zend的getParams()?
答案 0 :(得分:141)
您可以$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
答案 1 :(得分:9)
使用最近的Symfony 2.6+版本作为最佳实践请求作为参数传递,在这种情况下,您不需要显式调用$ this-> getRequest(),而是调用$ request-&gt ;请求 - >所有()
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());
}
}
答案 2 :(得分:0)
由于您在控制器中,因此我们假设您正在传递参数Request
;
您可以访问所有帖子$ request-> request-> all();返回键值对数组;另一方面,在使用get请求时,您可以使用$ request-> query-> all();