Laravel 的 post 问题,哪位先知给指点下

2020-12-08 15:49:15 +08:00
 sunorg

新用 Laravel 框架,当前版本 7.x, 现遇到一个问题:

写一 api 代码,已引入 request 依赖,get 请求可以得到数据,post 方式的文件上传也可以,但单纯 post 表单请求无法得到数据*。 具体代码如下

接口文件

  public function createUser(Request $request)
  {
        var_dump($_POST);  //有值,
       
        if($request->has(['email'])){
            return json_encode(['有数据'=>1]);
        }
        else{
            return json_encode(['没数据'=>0]);      //始终是没数据。
        }
        
  }

路由文件 api.php:

    Route::post('xxx/create-user', 'AdminController@createUser');
    

测试过程: 用 paw,选择 post 模式,设置变量 email=xxxx,测试 request->all(),无法找到该数据。

2751 次点击
所在节点    PHP
25 条回复
agdhole
2020-12-09 10:22:38 +08:00
看起来是中间件出了故障
ben1024
2020-12-09 10:37:14 +08:00
@sunorg
排查下构造函数和拦截器有没有做流处理,把全局变量清理了
cgpiao
2020-12-09 10:45:30 +08:00
设置 Content-Type 看看。
cbasil
2020-12-09 11:04:05 +08:00
has(input)只会检测 input 是否存在,而不会检测他的只是否为空,如果你想要判断一个值在请求中是否存在,并且不为空,可以使用 filled 方法:
if ($request->filled('name')) {
//
}
skys215
2020-12-10 10:19:25 +08:00
你在 index.php 第 2 行把$_POST 打印出来看看
如果存在,则说明是代码中的某个位置把它删除了
如果不存在,就不是代码的问题了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/733361

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX