如何取得 Laravel 邮政的所有资料

我正在使用 Laravel5,并试图获得所有的输入 POST 变量在控制器像这样-

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

所以,我得到了这个错误-

enter image description here

我做错了什么?

225301 次浏览

您应该使用 facade 而不是 Illuminate\Http\Request:

use Request;

并确保它不会与其他类冲突。

编辑: 这个答案是几年前写的。我现在更喜欢下面 Shuvrow 提出的方法。

试试这个:

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

使用 Dependency 比将其附加到类更好。

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

或者如果您喜欢使用输入变量,请使用

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

您现在可以使用 laravel 提供的全局请求方法

request()

例如,获取表单输入的 first _ name。

request()->first_name
// or
request('first_name')

对于那些谁来到这里寻找“如何获得所有输入的 POST”只

极低密度辐射;

幼虫 > = 5.5

$request->post()
// or
$request->post('my_param')

旧版本

$request->request->all(); //Get all post requests
$request->request->get('my_param'); //Get a post parameter

解释

Illuminate\Http\RequestSymfony\Component\HttpFoundation\Request扩展而来,Symfony\Component\HttpFoundation\Request有两个存储请求参数的类变量。

public $query-用于 GET 参数

public $request-用于 POST 参数

$request->request->all(); //Get all post requests
$request->request->get('my_param'); //Get a post parameter

5.5及以上版本的 $request->post()分别在内部调用 $request->request->all()$request->request->get('my_param')

来源 给你

至少应该是这样:

public function login(Request $loginCredentials){
$data = $loginCredentials->all();
return $data['username'];
}

你可以用它

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

没有

use Illuminate\Support\Facades\Request或其他。

似乎有一个主要的错误在几乎所有当前的答案,他们显示 都有 GET 和 POST 数据。不是 仅此而已 POST 数据。

您的代码作为被接受的答案提到的问题是您没有导入 facade。可以通过在顶部添加以下内容进行导入:

use Request;


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

您还可以像这样使用全局请求方法(@canan Etai 提到过) ,不需要导入:

request()->post();

然而,在控制器方法中导入 Request的一个更好的方法是按照@shuvrow 回答中提到的依赖注入:

use Illuminate\Http\Request;


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

你可在此找到更多有关直接投资的资料:

无论哪种情况,你都应该使用:

// 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

您可以将所有的帖子数据放入这个函数:-

$postData = $request->post();

如果你想要具体的归档,那么使用它:-

$request->post('current-password');