Laravel 5.6 RESTful Web 服务更新和删除

Laravel 5.6 RESRful Webervice update and delete

我尝试在 Laravel 5.6 中构建 RESTful API,现在我还想使用 PUT 和 DELETE 请求删除和更新我的数据库条目。如果我使用此代码,我不会出错,我总是会收到 "Updated" 或 "Deleted" 消息,但数据库永远不会改变。

/**
 * Update the specified resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \App\Car  $car
 * @return \Illuminate\Http\Response
 */
public function update(Request $request, $number)
{
    $bus = Bus::findOrFail($number);
    $bus->update($request->all());

    return response()->json(["message" => "Updated"]);
}

/**
 * Remove the specified resource from storage.
 *
 * @param  \App\Car  $car
 * @return \Illuminate\Http\Response
 */
public function destroy($number)
{
    Bus::find($number)->delete();

    return response()->json(["message" => "Deleted"]);
}
}

routes/api.php

 Route::get('bus', 'BusController@index');
 Route::post('bus', 'BusController@store');
 Route::put('bus/{number}', 'BusController@update');
 Route::delete('bus/{number}', 'BusController@delete');

LARAVEL BLADE
如果您使用 Laravel blade,只需在开头添加 method_field (PUT/DELETE)csrf_field形式,类似于以下内容:

<form action="bus/<your_id_or_number>" method="post" enctype="multipart/form-data">

            {{ method_field('PUT') }}
            {{ csrf_field() }}

            ... rest of your code ...
</form>

POST男人 API

1. 如果您在邮递员上测试 API,请将 API 方法更改为 POST 并使用 key=_method 和 value=PUT 添加一个新的 field/parameter ,如下图所示:

2. 或在正文部分使用 x-www-form-urlencoded,方法类型默认为 PUT/DELETE,例如: