为什么Laravel REST控制器$ request->输入为NULL?

时间:2016-07-12 19:36:02

标签: php rest laravel laravel-5.2

我正在学习教程http://www.tutorials.kode-blog.com/laravel-5-angularjs-tutorial,我已经设法为我的控制器编写类似的方法:

public function update(Request $request, $id) {
    $employee = Employee::find($id);

    $employee->name = $request->input('name');
    //...
    $employee->save();

    return "Sucess updating user #" . $employee->id;
}

教程中认为此代码有效,但实际上var_dump($ request-> input)给出了NULL。那么 - 我应该使用什么$ request变量来获取请求的主体?我创建了var_dump($ request),但结构难以管理。实际上我对这个教程很怀疑 - 我们真的需要列出标准更新程序中的所有字段吗?

3 个答案:

答案 0 :(得分:3)

您可以使用以下方式访问输入数据:

$input = $request->all();

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

但是,在使用AngularJS $http模块时,我也必须以这种方式获取输入:

$input = file_get_contents('php://input');

答案 1 :(得分:2)

获取所有输入

试试吧

$request = \Input::all();

答案 2 :(得分:1)

如果您想从请求对象中获取单个参数,可以使用Request类的输入法来执行此操作。

$request->input("parameter_name");

但是如果你想获取所有请求参数,那么你可以使用all方法,它将返回所有请求键值对的数组

$request->all()

你错过的是,你打电话给$request->input这是空的,因为input 方法而不是属性