当我尝试更新时出错... PUT http://127.0.0.1:8000/api/task 405(方法不允许),有人可以帮忙吗?
public function update(Request $request, $id)
{
$currentUser = JWTAuth::parseToken()->authenticate();
$task = $currentUser->tasks()->find($id);
if(!$task)
throw new NotFoundHttpException;
$task->fill($request->all());
if($task->save())
return $this->response->noContent();
else
return $this->response->error('could_not_update_task', 500);
}
答案 0 :(得分:2)
methodNotAllowed
异常表示您请求的HTTP方法不存在路由。
此路线http://127.0.0.1:8000/api/task
看起来像商店路线
更新将类似于http://127.0.0.1:8000/api/task/1
所以请确保添加了方法
的路线答案 1 :(得分:1)
谢谢大家的帮助,经过黑客和黑客攻击后,我意识到我的Restangular.one(“api / task”)。customPUT(data,taskId)。然后(函数(响应)FUNCTION没有收到数据,所以PUT是在没有数据的情况下点击api路由导致不允许的方法错误。
答案 2 :(得分:0)
注意:由于HTML表单仅支持POST和GET,因此将自动在表单中添加_method隐藏字段来欺骗PUT和DELETE方法。 (Laravel Docs)
您可以使用GET
或POST
方法吗?
或
{!! Form::open(array('url' => '/', 'method' => 'PUT', 'class'=>'col-md-12')) !!}
.... wathever code here
{!! Form::close() !!}
Route::put('/api/task/{id}', 'YourController@update');
这为您的控制器提供了您想要的唯一标识符。