[英]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.