В Laravel, как я могу получить* только * параметры POST?

Я знаю, что можно использовать $request->get('my_param') или Input::get('my_param') чтобы получить сообщение или получить параметр запроса в Laravel (я сейчас играю с версией v5/dev, но это то же самое для 4.2).

но как я могу убедиться, что мой my_param пришел через параметр POST и был не только от ?my_param=42 добавлен к URL-адресу? (помимо возврата к ol'$_POST и $_GET суперглобалы и выбрасывание тестируемости из окна)

(Примечание: я также знаю, что Request::get способ даст мне POST param для запроса POST, если оба POST URL / GET param с тем же именем существуют, но... но если param приземлится через строку запроса url вместо этого, я хочу, чтобы Laravel-идиоматический способ узнать это)

2 ответов


в классе Illuminate\Http\Request (или на самом деле класс Symphony он простирается от Symfony\Component\HttpFoundation\Request) есть две переменные класса, которые хранят параметры запроса.

public $query - для получения параметров

public $request - для параметров POST

оба экземпляра Symfony\Component\HttpFoundation\ParameterBag, который реализует get метод.

вот что вы можете сделать (хотя это не очень симпатично)

$request = Request::instance();
$request->request->get('my_param');

зачем пытаться усложнять вещи, когда вы можете легко сделать то, что вам нужно:

$posted = $_POST;