放入 laravel API
PUT in laravel API
我正在学习 api 休息 laravel,我能够实现除 PUT 之外的所有方法。尽管路由和控制器已正确配置,但使用 PUT 方法对请求的响应是 "laravel put Sorry, the page you are looking for could not be found."、As now image.
这里是控制器中的方法代码在app/Http/Controllers/LivroController.php:
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:
Route::put('livro', 'LivroController@store');
将您的邮递员方法更改为 POST,然后在您的 Body 中添加新参数:
"_method" : PUT
这是因为 HTML 表单不支持 PUT、PATCH 或 DELETE 操作。因此,当定义从 HTML 表单调用的 PUT、PATCH 或 DELETE 路由时,您需要向表单
添加一个隐藏的 _method 字段
如果你想创建新数据,你应该使用post方法,
Route::post('livro', 'LivroController@store');
public function store(Request $request) {
如果你想更新现有数据,你应该使用 put 方法,
Route::put('livro/{id}', 'LivroController@update');
public function update(Request $request, $id) {
您可以使用此包 https://github.com/durmus-aydogdu/laravel-resource 进行休息通话。此包高度可定制,可用于休息和资源调用。
最好使用控制器类型的资源,在这种情况下使用 put 方法。您还应该验证请求。例如:
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);
}
}
我正在学习 api 休息 laravel,我能够实现除 PUT 之外的所有方法。尽管路由和控制器已正确配置,但使用 PUT 方法对请求的响应是 "laravel put Sorry, the page you are looking for could not be found."、As now image.
这里是控制器中的方法代码在app/Http/Controllers/LivroController.php:
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:
Route::put('livro', 'LivroController@store');
将您的邮递员方法更改为 POST,然后在您的 Body 中添加新参数:
"_method" : PUT
这是因为 HTML 表单不支持 PUT、PATCH 或 DELETE 操作。因此,当定义从 HTML 表单调用的 PUT、PATCH 或 DELETE 路由时,您需要向表单
添加一个隐藏的 _method 字段如果你想创建新数据,你应该使用post方法,
Route::post('livro', 'LivroController@store');
public function store(Request $request) {
如果你想更新现有数据,你应该使用 put 方法,
Route::put('livro/{id}', 'LivroController@update');
public function update(Request $request, $id) {
您可以使用此包 https://github.com/durmus-aydogdu/laravel-resource 进行休息通话。此包高度可定制,可用于休息和资源调用。
最好使用控制器类型的资源,在这种情况下使用 put 方法。您还应该验证请求。例如:
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);
}
}