当前位置: 首页 > 知识库问答 >
问题:

如何在Laravel中获取POST的所有输入

佟阳飙
2023-03-14

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

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

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

我做错了什么?

共有3个答案

钱元徽
2023-03-14

对于那些来这里寻找“如何获得所有的投入后”只

拉维尔

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

旧版本

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

classillighted\Http\Request扩展自Symfony\Component\HttpFoundation\Request,它有两个存储请求参数的类变量。

用于GET参数的公共查询

用于POST参数的公共请求

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

$请求-

来源于此

丁俊爽
2023-03-14

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

作为所提到的公认答案,您的代码的问题在于您没有导入facade。可通过在顶部添加以下内容导入:

use Request;

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

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

request()->post();

但是,在控制器方法中导入请求的更好方法是通过@shuvrow answer:

use Illuminate\Http\Request;

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

更多关于DI的信息可以在这里找到:

  • https://laravel.com/docs/5.6/container
  • https://laravel.com/docs/5.6/controllers#dependency-注入和控制器

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

// 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
芮瑾瑜
2023-03-14

试试这个:

use Illuminate\Support\Facades\Request;
public function add_question(Request $request)
{
    return $request->all();
}
 类似资料:
  • 问题内容: 我正在尝试使用Flask构建一个简单的API,现在我想在其中读取一些POSTed JSON。我使用Postman Chrome扩展程序进行POST,而我发布的JSON就是。我尝试使用以下方法读取JSON: 在浏览器上,它可以正确返回我放入GET中的UUID,但是在控制台上,它只是打印出来(我希望它可以在其中打印出来。有人知道我如何从Flask方法中获取发布的JSON吗? 问题答案: 首

  • 问题内容: 我有这段代码来获取我需要的所有元素并进行一些处理。问题是我需要指定每个面板以获取其中的元素。 我想做这样的事情,并且不需要指定所有面板名称就可以获取所有元素。我该怎么做。下面的代码无法获取所有元素。 问题答案: 您可以编写一个递归方法并在每个容器上递归: 该站点提供了一些示例代码: 如果只需要直接子组件的组件,则可以将递归深度限制为2。

  • 我在一个有这种结构的拉威尔项目中工作 用户:id | first | u name |。。。 角色:id|name 分配的角色:id |用户id |角色id 我认为这是很明显的:p 用户模型 角色模型 我正在寻找一种方法来获取所有具有指定角色(在本例中为“教师”)的用户。我试过这个: 但这总是返回一个包含所有用户的数组。 有人知道为什么会这样吗?谢谢

  • 问题内容: 队列侦听器未在服务器上启动,某些作业已推送(使用Redis驱动程序)。 我该如何计算(或获得全部)这些论文工作?我没有找到任何工匠命令来获取此信息。 问题答案: 如果有人还在这里寻找答案,那是我的方法: 是Redis连接名称,默认情况下为空,并且是队列/管道的名称,默认情况下为“默认”!

  • 我知道,为了获得Redis中所有键的列表,我必须使用,但是有没有一种方法可以将所有键及其值一起输出? 几分钟的搜索没有产生任何结果。 另外,非常感谢您的回答,但我正在寻找一个本地解决方案。我可以自己编写一个函数,遍历的所有输出。