繁体   English   中英

Codeigniter Rest Api使用参数ID删除

[英]Codeigniter Rest Api Delete using parameter ID

我正在为我的应用Flutter学习Codeigniter和Rest Api的CRUD操作,但是Delete操作却遇到了一些问题。 我想使用参数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仍为null。
这是我的Controller and Model Rest 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();
    }

我在您的代码中看到了一些歧义词,例如api网址是:

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){

}


}

如果可能的话,这样做

192.168.43.159/wpu-rest-server/apii/mahasiswa/delete_delete?id=5

控制者

public function delete_delete() {
 $id = $this->input->get('id');
 $this->mahasiswa->deleteMahasiswa($id);
 redirect('http://192.168.43.159/wpu-rest-server/apii/mahasiswa'); 
}

模型

function deleteMahasiswa() {
 $this->db->where('id', $id);
 $this->db->delete('mahasiswa'); 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM