【问题标题】:How to use Delete in Laravel API Route如何在 Laravel API 路由中使用 Delete
【发布时间】:2018-03-23 12:54:51
【问题描述】:

我使用 Laravel 作为后端并通过 JSON 生成 API,我使用 php 获取 json 数据并通过 laravel 中的路由 api 删除数据,但它似乎无法正常工作。 我在 laravel 中的 API 路由

Route::delete('articles/{article}', 'ArticleController@delete');

我的控制器

public function delete(Article $article)
{
    $article->delete();
    return response()->json(null);
}

我的 API 网址

http://192.168.0.21/api/articles/id

我的 PHP 前端删除代码

$json = file_get_contents('http://192.168.0.21/api/articles/' . $id);
$json_data = json_decode($json, true);
unset($json_data['id']);

有什么解决办法吗?

【问题讨论】:

  • 尝试只传递 id 然后获取记录并删除记录。 public function delete($id) { $article = Article::findOrFail($id); $article->delete(); return response()->json(null); }
  • @Jigs1212 你能创建答案吗?
  • 你想做什么?什么不工作?为什么要在 json 中返回 null ,然后从中取消设置 id? (无论如何都不存在)。请提供更多信息
  • @StyleSh1t 我想按 id 删除内容,但我无法删除它
  • @Jigs1212 如何在 PHP 中使用删除路由??

标签: php json laravel api


【解决方案1】:

路线{id}中传入id,你要删除的记录的id。

Route::delete('articles/{id}', 'ArticleController@delete');

ArticleController

public function delete($id) {
    $article = Article::findOrFail($id);
    if($article)
       $article->delete(); 
    else
        return response()->json(error);
    return response()->json(null); 
}

AJAX 调用

        $.ajax({
            url: BASE_URL + '/articles/'+ id,
            type: 'DELETE',
        })
        .done(function() {
            console.log("success");
        })
        .fail(function() {
            console.log("error");
        })
        .always(function() {
            console.log("complete");
        });

【讨论】:

  • 还是删不掉
  • 你怎么叫路线?
  • $json = file_get_contents('192.168.0.21/api/articles' . $id); $json_data = json_decode($json, true);未设置($json_data['id']);
  • 喜欢我的问题
  • 你可以尝试使用ajax jquery调用还是你只需要php?
【解决方案2】:

您将路由方法设置为 DELETE,但您使用的是 GET 的 file_get_contents 请求它。

你需要使用 curl:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://192.168.0.21/api/articles/' . $id);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$result = json_decode($result);
curl_close($ch);

【讨论】:

  • 还是可以删除的
  • @The Rock 你能分享你的新代码吗?有没有错误?
  • 没有错误,但我无法删除路线中使用的数据
  • 但是当我使用 Postman 并且我通过这些 url 和方法删除它就可以了
  • Donu 在您的服务器上安装了 curl。
猜你喜欢
  • 2019-04-28
  • 2017-10-22
  • 2017-01-25
  • 2019-02-19
  • 2020-07-20
  • 2014-07-19
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
相关资源
最近更新 更多