【问题标题】:Laravel API patch methodLaravel API 补丁方法
【发布时间】:2017-02-28 19:32:09
【问题描述】:

我正在开发一个 laravel api 并成功获取、发布、删除,我现在正在尝试使用 PATCH 执行 update 方法。

这是我的第一次尝试:

public function update($id, Request $request)
{
    $taxes = taxes::find($id);
    $taxes ->fill($request->only(['$request']));
    $taxes->save();
}

并在邮递员上使用以下网址对其进行测试

****.local/api/taxes/1?description=test

这显然行不通,我认为我可以看到错误,但我目前在另一台机器上,但希望有人能指导我正确的路径来制作这个更新方法。

别忘了它是一个 api,没有视图/表单。

谢谢。

【问题讨论】:

    标签: php laravel curl sql-update


    【解决方案1】:

    对于 Postman 中的请求,您必须在 Body 选项卡的 x-www-form-urlencoded 选项卡中指定查询的正文(因此要更改的变量)。

    您可以在这里找到截图:http://img11.hostingpics.net/pics/987644Sanstitre1.jpg(等待 imgur 重新上线)

    你的方法也有问题,你的代码应该如下:

    public function update($id, Request $request)
    {
        $taxes = taxes::find($id);
        $taxes ->fill($request->only(['description', 'anyotherfield', '...']));
        $taxes->save();
    }
    

    【讨论】:

    • 我明天试试,你觉得更新方法对吗?
    • 如果我想更新 url 中的字段而不是手动将其添加到代码中怎么办?
    【解决方案2】:

    可能与此行有关:$request->only(['$request']),因为您的请求不太可能包含名为 $request 的参数。您可能一直想使用$request->all()(所有输入)或$request->only('description', 'etc.'),它将给定参数列入白名单。

    可能应该给您的模型一个单数名称,并将其大写。

    Tax::findOrFail($id)->update($request->only('description'))
    

    【讨论】:

    • 成功了,如果我想更新 url 中的字段而不是手动将其添加到代码中怎么办?
    猜你喜欢
    • 2012-08-03
    • 2017-01-31
    • 2011-07-26
    • 2021-01-11
    • 2021-07-26
    • 2012-08-19
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    相关资源
    最近更新 更多