получение параметров запроса из URL в laravel 7.1 - PullRequest
0 голосов
/ 25 мая 2020

В качестве обучающего упражнения я создаю REST API в Laravel 7.1. Мне трудно понять, как анализировать параметры строки запроса в методах маршрута. Я прочитал документацию здесь , и в ней показано, как добавить параметры в путь:

Route::get('user/{id}', function ($id) {
    return 'User '.$id;
});

Однако я не вижу, где вы можете получить параметры запроса из запроса URL. В моем коде игрушки я хочу добавить маршрут для добавления новой машины в инвентарь:

Route::post('/inventory/add/{make}/{model}/{year}', function ($make, $model, $year) {
    return \App\Inventory::create($model, $color, $trim, $accessories);
});

Я хочу указать такие параметры, как цвет, отделка и аксессуары, через строку запроса, например:

http://example.com/inventory/add/ford/focus/2020?color=red&trim=sport&accessories=chrome-wheels

Как мне получить параметры запроса из метода Route::post?

Edit Я полагаю, что эта архитектура не может быть оптимальным способом добавления этого дополнительного информации, но поскольку я пытаюсь выучить laravel, я использую ее в качестве примера. Мне интересно узнать, как получить параметры запроса, а не как улучшить архитектуру этого обучающего примера.

Ответы [ 2 ]

3 голосов
/ 25 мая 2020

В Route::post параметры в маршруте устанавливать не нужно. Просто используйте:

Route::post("your-route", "YourControllerController@doSomeThing");

Итак, в app/Http/Controllers/YourControllerController.php файле:

class YourControllerController extends Controller {

public function doSomeThing(Request $request)
{
    echo $request->input('param1');
    echo $request->input('param2');
    echo $request->input('param3');
}
1 голос
/ 25 мая 2020

Вам просто нужно вставить экземпляр запроса в свой обработчик (независимо от метода закрытия или контроллера), а затем запросить ваши параметры.

$color = $request->query('color', 'default-color');

//And so on...

https://laravel.com/docs/7.x/requests#retrieving -input

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...