it-swarm.com.ru

как получить все входные данные POST в Ларавеле 5

Я использую Laravel 5 и пытаюсь получить весь ввод переменной POST в контроллере, как это

public function add_question()
{
    return Request::all();
}

Итак, я получаю эти ошибки

 enter image description here

Что я делаю не так?

27
Abrar Jahin

Попробуй это :

use Illuminate\Support\Facades\Request;
public function add_question(Request $request)
{
    return $request->all();
}
27
Md Rashedul Hoque Bhuiyan

Кажется, есть большая ошибка почти во всех текущих ответах в том, что они показывают И GET, и POST данные. Не ТОЛЬКО POST данные. 

Проблема с вашим кодом в качестве принятого упомянутого ответа заключается в том, что вы не импортировали фасад. Это можно импортировать, добавив следующее вверху:

use Request;

public function add_question(Request $request)
{
    return Request::post();
}

Вы также можете использовать метод глобального запроса следующим образом (упомянутый @Canaan Etai) без необходимости импорта:

request()->post();

Тем не менее, лучший подход к импорту Request в методе контроллера - это внедрение зависимостей, как упомянуто в ответе @shuvrow:

use Illuminate\Http\Request;

public function add_question(Request $request)
{
    return $request->post();
}

Более подробную информацию о DI можно найти здесь:

В любом случае вы должны использовать:

// Show only POST data
$request->post(); // DI
request()->post(); // global method
Request::post(); // facade

// Show only GET data
$request->query(); // DI
request()->query(); // global method
Request::query(); // facade

// Show all data (i.e. both GET and POST data)
$request->all(); // DI
request()->all(); // global method
Request::all(); // facade
17
Yahya Uddin

Вы должны использовать фасад, а не Illuminate\Http\Request. Импортируйте это вверху:

use Request;

И убедитесь, что он не конфликтует с другим классом.

Правка: этот ответ был написан несколько лет назад. Теперь я поддерживаю подход, предложенный Шувровым ниже.

5
Joel Hinz

Для тех, кто пришел сюда ищет "как получить все входящие POST" только

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

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

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

Использование: Чтобы получить только данные поста

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

Источник здесь

4
Victor Anuebunwa

Вы можете использовать это 

$params = request()->all();

без

import Illuminate\Http\Request OR 

use Illuminate\Support\Facades\Request OR прочее.

0
Rafael Mendes

Вы можете получить все данные в этой функции: -

$postData = $request->post();

и если вы хотите конкретное поле, то используйте его: -

$request->post('current-password');
0
nageen nayak