如何在 Laravel API 路由中使用删除

The*_*ock 1 php api json laravel

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

Route::delete('articles/{article}', 'ArticleController@delete');
Run Code Online (Sandbox Code Playgroud)

我的控制器

public function delete(Article $article)
{
    $article->delete();
    return response()->json(null);
}
Run Code Online (Sandbox Code Playgroud)

我的 API 网址

http://192.168.0.21/api/articles/id
Run Code Online (Sandbox Code Playgroud)

我的 PHP 前端删除代码

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

这些有什么解决办法吗?

Jig*_*212 8

中的Route{id} Pass id ,您要删除的记录的id。

Route::delete('articles/{id}', 'ArticleController@delete');
Run Code Online (Sandbox Code Playgroud)

文章控制器

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

阿贾克斯调用

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