php laravel - 从 http 请求中获取参数

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/31909964/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 22:42:15  来源:igfitidea点击:

laravel - get parameters from http request

phpangularjshttplaravel-5

提问by Growler

I want to pass in multiple parameters from my Angular app to my Laravel API, namely the idand choicesarray supplied by user.

我想将多个参数从我的 Angular 应用程序传递到我的 Laravel API,即用户提供的idandchoices数组。

Angular:

角度:

http request:

http请求:

    verifyAnswer: function(params) {
            return $http({
                method: 'GET',
                url: 'http://localhost:8888/api/questions/check',
                cache: true,
                params: {
                    id: params.question_id,
                    choices: params.answer_choices
                }
            });

Laravel 5:

拉维尔5:

routes.php:

路线.php:

$router->get('/api/questions/check/(:any)', 'ApiController@getAnswer');

ApiController.php:

ApiController.php:

public function getAnswer(Request $request) {
    die(print_r($request));
}

I thought I should use :anywithin my URI to indicate I'll be passing in an arbitrary amount of parameters of various data structure (id is a number, choices is an array of choices).

我想我应该:any在我的 URI 中使用来表示我将传入任意数量的各种数据结构的参数(id 是一个数字,choices 是一个选项数组)。

How can I make this request?

我怎样才能提出这个要求?



[200]: /api/questions/check?choices= choice+1 &choices= choice+2 &choices= choice+3 &id=1

[200]:/api/questions/check?choices=choice+1 &choices=choice+2 &choices=choice+3 &id=1

回答by baao

Change this:

改变这个:

$router->get('/api/questions/check/(:any)', 'ApiController@getAnswer');

to

$router->get('/api/questions/check', 'ApiController@getAnswer');

And fetch the values with

并获取值

echo $request->id;
echo $request->choices;

in your controller. There is no need to specify that you will receive parameters, they will all be in $requestwhen you inject Requestto your method.

在您的控制器中。无需指定您将接收参数,它们将在$request您注入Request到您的方法时全部包含在内。