首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >放入laravel API

放入laravel API
EN

Stack Overflow用户
提问于 2018-06-08 04:51:25
回答 3查看 9.1K关注 0票数 1

我正在使用laravel学习api rest,我能够实现除PUT之外的所有方法。尽管路由和控制器配置正确,但使用PUT方法对请求的响应是"laravel put对不起,找不到您要查找的页面。“,As now image

下面是app/Http/ controller /LivroController.php中控制器中的方法代码:

代码语言:javascript
复制
public function store(Request $request)  {

$livro = $request->isMethod('put') ? Livro::findOrFail($request->livro_id) : new Livro;

$livro->id = $request->input('livro_id');
$livro->nome = $request->input('nome');
$livro->descricao = $request->input('descricao');
$livro->user_id =  1; //$request->user()->id;

if($livro->save()) {
  return new LivroResource($livro);
}}

以下是/routes/api.php中的路由代码:

代码语言:javascript
复制
Route::put('livro', 'LivroController@store');
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-08 09:32:08

如果要创建新数据,则应使用post方法,

代码语言:javascript
复制
Route::post('livro', 'LivroController@store');

public function store(Request $request)  {

如果要更新现有数据,则应使用put方法,

代码语言:javascript
复制
Route::put('livro/{id}', 'LivroController@update');

public function update(Request $request, $id)  {

您可以使用此包https://github.com/durmus-aydogdu/laravel-resource进行rest调用。这个包对于rest和资源调用是高度可定制的。

票数 2
EN

Stack Overflow用户

发布于 2018-06-08 05:09:38

将postman方法更改为POST,然后在Body中添加新参数:

代码语言:javascript
复制
"_method" : PUT

这是因为HTML表单不支持PUT、PATCH或DELETE操作。因此,在定义从HTML表单调用的PUT、PATCH或DELETE路由时,您需要在表单中添加一个隐藏的_method字段

票数 2
EN

Stack Overflow用户

发布于 2018-06-08 09:56:17

最好使用控制器类型的资源,在本例中使用put方法。此外,您还应该验证请求。例如:

代码语言:javascript
复制
public function update(Request $request, $id)
{

  $livro = Livro::findOrFail($id);
  $validator = Validator::make($request->all(), [
    'livro_id' => 'required',
    'nome' => 'required',
    'descricao' => 'required',
  ]);
  if ($validator->fails()) {
    return response()->json(['errors'=>$validator->messages()],Response::HTTP_UNPROCESSABLE_ENTITY);
  }else{
    $livo->update($request->all());
    return response()->json(['livro'=>$livro], Response::HTTP_OK);
  }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50749985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档