Abrufen aller Anfrageparameter in Symfony 2

Lesezeit: 2 Minuten

Benutzer-Avatar
ContextSwitch

In Symfony 2-Controllern muss ich jedes Mal, wenn ich einen Wert von Post erhalten möchte, Folgendes ausführen:

$this->getRequest()->get('value1');
$this->getRequest()->get('value2');

Gibt es eine Möglichkeit, diese in einer Anweisung zu konsolidieren, die ein Array zurückgeben würde? Etwas wie getParams() von Zend?

Benutzer-Avatar
Guillaume Flandern

Du kannst tun $this->getRequest()->query->all(); um alle GET-Parameter zu erhalten und $this->getRequest()->request->all(); um alle POST-Parameter zu erhalten.

Also in deinem Fall:

$params = $this->getRequest()->request->all();
$params['value1'];
$params['value2'];

Weitere Informationen zur Request-Klasse finden Sie unter http://api.symfony.com/2.8/Symfony/Component/HttpFoundation/Request.html

  • Um Werte für Parameter im Pfad (z. B. /posts/{id}) zu erhalten, verwenden Sie $request->attributes->all(). Ich benutzte $request->get() Ich dachte, das sei der einzige Weg, an diese Daten zu kommen, und kam hierher, um nach einem anderen Weg zu suchen.

    – Dren

    13. Januar 2014 um 12:15 Uhr

Bei neueren Versionen von Symfony 2.6+ als Best Practice wird Request als Argument mit Aktion übergeben. In diesem Fall müssen Sie $this->getRequest() nicht explizit aufrufen, sondern $request->request->all() aufrufen.

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());
        }

    }

Benutzer-Avatar
ckkaqa

Da Sie sich in einem Controller befinden, wird die Aktionsmethode mit a angegeben Request Parameter.

Mit können Sie auf alle POST-Daten zugreifen $request->request->all();. Dies gibt ein Schlüssel-Wert-Paar-Array zurück.

Bei der Verwendung von GET-Anfragen greifen Sie auf Daten zu $request->query->all();

Zum Symfony 3.4können Sie auf die Daten für beide zugreifen ERHALTEN und POSTSo was

Post:

$data = $this->request->request->all();

Erhalten:

$data = $this->request->query->all();

Nun, denken Sie daran, dass dies immer PHP ist, also könnten Sie einfach nach der superglobalen Variablen suchen $_REQUEST

https://www.php.net/manual/en/reserved.variables.request.php

1345610cookie-checkAbrufen aller Anfrageparameter in Symfony 2

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy