首页 > 解决方案 > Codeigniter Rest Api 使用参数 ID 删除

问题描述

我正在为我的应用程序Flutter学习使用 Codeigniter 和 Rest Api 进行 CRUD 操作。但是我在删除操作时遇到了一些问题。我想使用参数 ID 删除数据,但消息显示 ID Null。

这是我使用参数的获取操作

http://192.168.43.159/wpu-rest-server/apii/mahasiswa/get?id=5 

可能我会像这样进行删除操作吗?

http://192.168.43.159/wpu-rest-server/apii/mahasiswa/delete?id=5 

我已经尝试了

http://192.168.43.159/wpu-rest-server/apii/mahasiswa/delete/5
http://192.168.43.159/wpu-rest-server/apii/mahasiswa/delete/id/5

但没有任何变化,仍然 ID 为空。
这是我的控制器和模型休息 API:
控制器

public function delete_delete()
    {
        $id = $this->delete('id');
        $msgDelete = ['id' => $id, 'message' => 'Deleted the resource'];
        $msgEmpty = ['status' => false, 'message' => 'ID Not Found'];
        $msgBadRequest = ['status' => false, 'message' => 'Provide an ID'];

        if ($id === null) {
            $this->set_response($msgBadRequest, 400);
        } else {
            if ($this->mahasiswa->deleteMahasiswa($id) > 0) {
                $this->set_response($msgDelete, 204);
            } else {
                $this->set_response($msgEmpty, 404);
            }
        }
    }

模型

public function deleteMahasiswa($id)
    {
        $this->db->delete('mahasiswa', ['id' => $id]);
        return $this->db->affected_rows();
    }

标签: restcodeigniterflutter

解决方案


我在您的代码中看到了一些模棱两可的东西,例如 api url 是:

http://192.168.43.159/wpu-rest-server/apii/mahasiswa/delete/5

并且您的控制器方法名称是 delete_delete 。

如果您使用 get 方法,则应遵守以下规定:

base_url/controller_name/method_name?id=3

然后您可以通过以下方式获取值:

$this->input->get('id')

否则,如果您将 id 作为方法参数传递,如下所示:

http://your_domain/controller_name/delete/5

你可以得到这样的值:

class controller_name extends CI_Controller {
.
.
.
public function delete($id=null){

}


}

推荐阅读