在symfony 2控制器中,每次我想从发布中获取值时,都需要运行:
$this->getRequest()->get('value1');
$this->getRequest()->get('value2');
有什么方法可以将它们合并为一个返回数组的语句?就像Zend的getParams()一样?
Answers:
您可以$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->attributes->all()
。我当时$request->get()
想这是获取此数据的唯一方法,来到这里寻找另一种方法。