rest - 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();
}
解决方案
我在您的代码中看到了一些模棱两可的东西,例如 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){
}
}
推荐阅读
- angular - 在 rxjs 中使用 Subject 时遇到问题
- variables - 从命令行询问两个整数 - GOlang
- dataset - 通过 http 将 AWS Common Crawl 的小样本下载到本地机器
- decode - 如何打开 cpp 文件并给出此消息“文件未显示在编辑器中,因为它是二进制文件或使用了不受支持的文本编码”?
- typescript - 如何检查打字稿的repl(ts-node)中的类型?
- python - 评估我的 CNN 停止并显示消息“OOM 分配具有形状 [3,3,256,512] 的张量时”
- routes - 控制器中的子路由
- asp.net-core - .Net Core AspNetCoreHostingModel 是什么意思?
- javascript - 对字符串和数字使用汇总
- r - 如何通过应用特定函数来聚合 data.table 中的重复行