为什么无法更新update呢? $request->all()为空 [已解决]

下面的问题是因为postman的Body里,要选择:x-www-form-urlencoded,不能选form-data

之前已经有相关的讨论了。
问答:为何文中最后的 patch 方法要使用 x-www-form-urlencoded 而不是 for...

原问题如下:

store方法是可以的。
update方法就无法更新了。

代码和教程一样:

public function update(TopicRequest $request, Topic $topic)
{
dd($request->all());  // 这里返回 []
  $this->authorize('update', $topic);
  $topic->update($request->all());
 return new TopicResource($topic);
}

send之后,返回的值没有更新。

然后我把TopicRequest.php稍作修改:

 public function rules()
    {
        switch($this->method()){
            case 'POST':
                return [
                    'title' => 'required|string',
                    'body'  => 'required|string',
                    'category_id' => 'required|exists:edu_category,id'
                ];
                break;
            case 'PATCH':
                return [
                    'title' => 'required|string',   // 修改了这里
                    'body'  => 'required|string'  // 修改了这里
                ];
                break;
        }

    }

再用postman

却报没有提交参数,好奇怪。
恳请学长指点。谢谢!

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
liyu001989
最佳答案

用 x-www-form-urlencode

3年前 评论
讨论数量: 2
liyu001989

用 x-www-form-urlencode

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!