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

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

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

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

17

Решение

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

public $query — для параметров GET

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

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

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

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

Другие решения

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

$posted = $_POST;
-3

По вопросам рекламы [email protected]