【发布时间】:2015-08-26 19:58:11
【问题描述】:
我已经编写了一些 REST API 方法,包括用于更新数据库条目的方法:
// Update
public function update(CreateAEDRequest $request, $id) {
$aed = AED::find($id);
if(!$aed) {
return response()->json(['message' => "Dieser AED exisitiert nicht", 'code' => 404], 404);
}
$owner = $request->get('owner');
$street = $request->get('street');
$aed->owner = $owner;
$street->street = $street;
$aed->save();
return response()->json(['message' => 'Der AED wurde aktualisiert'], 200);
}
路线定义为:
Route::put('/aeds/{aeds}', 'APIAEDController@update');
Route::patch('/aeds/{aeds}', 'APIAEDController@update');
一个请求正在被处理:
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
use Illuminate\Http\JsonResponse;
class CreateAEDRequest extends Request
{
public function authorize()
{
// turn back to false when doing auth
return true;
}
public function rules()
{
return [
'owner' => 'required',
'street' => 'required'
];
}
}
但是当我使用邮递员并尝试更新现有的数据库条目并根据要求填写要在邮递员中发送的所有者和街道变量时,我收到消息:“无法获得任何响应。返回状态代码 0”
所有其他方法都可以正常工作。难道我的路由定义不正确?
更新
当我以x-www-form-urlencoded发送数据时,它可以工作!当我将它们作为表单数据发送时,它会显示错误消息。
【问题讨论】:
-
当您编码为表单数据时,
$id是否为空?通常你会用与路由参数相同的名称来调用你的变量,但我不确定这是否是基本需求。 -
对于 put/patch,您需要以 x-www-form-urlencoded 形式发送数据