如何获取POST在拉拉维尔的所有输入

2022-08-30 08:51:30

我正在使用Laravel 5,并试图在控制器中获取POST变量的所有输入,如下所示 -

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

所以,我得到这个错误 -

enter image description here

我做错了什么?


答案 1

试试这个 :

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

答案 2

几乎所有当前答案似乎都存在重大错误,因为它们同时显示了GET和POST数据。不仅发布数据。

正如所提到的已接受的答案,您的代码的问题在于您没有导入外观。这可以通过在顶部添加以下内容来导入:

use Request;

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

您也可以像这样使用全局请求方法(@Canaan Etai 提到),无需导入:

request()->post();

但是,在控制器方法中导入的更好方法是通过依赖关系注入,如@shuvrow答案中所述:Request

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

推荐