【问题标题】:how to use route for delete record by URL?如何使用路由通过 URL 删除记录?
【发布时间】:2016-04-25 11:56:30
【问题描述】:

我想通过 JSON 删除数据库中的数据,并且我正在使用 codeigniter 框架

我的route.php

$route['api/mahasiswa/delete/(:any)']['DELETE'] = 'MahasiswaController/deleteMahasiswa/$1';

我的控制器

  public function deleteMahasiswa($id)

$this->Mahasiswa->deleteMahasiswa($id);

$response = array(
  'Success' => true,
  'Info' => 'Data Berhasil di hapus');

$this->output
  ->set_status_header(200)
  ->set_content_type('application/json', 'utf-8')
  ->set_output(json_encode($response, JSON_PRETTY_PRINT))
  ->_display();
  exit;

我的模型

public function deleteMahasiswa($id)

$val = array(
  'id' => $id
);
$this->db->delete('mahasiswa', $val);

我试图访问

http://localhost/json/public/api/mahasiswa/delete/6

但是没有用


但我的获取数据有效

我的路线

$route['api/mahasiswa/get/(:num)/(:num)']['GET'] = 'MahasiswaController/getMahasiswa/$1/$2';

我的控制器

  public function getMahasiswa($page, $size)

{

$response = array(
  'content' => $this->Mahasiswa->getMahasiswa(($page - 1) * $size, $size)->result(),
  'totalPages' => ceil($this->Mahasiswa->getCountMahasiswa() / $size));

$this->output
  ->set_status_header(200)
  ->set_content_type('application/json', 'utf-8')
  ->set_output(json_encode($response, JSON_PRETTY_PRINT))
  ->_display();
  exit;

}

我的模特

  public function getCountMahasiswa()

  return $this->db->count_all_results('t_akun', FALSE);

公共函数 getMahasiswa($page, $size)

  return $this->db->get('t_akun', $size, $page);

我使用这样的 URL

http://localhost/json/public/api/mahasiswa/get/1/5/

get data

【问题讨论】:

  • 感谢您修复了我的语法:D
  • ^^ *修正我的语法:-D

标签: php json codeigniter


【解决方案1】:

尝试删除 http

route.php

$route['api/mahasiswa/delete/(:any)'] = 'MahasiswaController/deleteMahasiswa/$1';

在控制器中

public function deleteMahasiswa($id)
{
    $this->Mahasiswa->deleteMahasiswa($id);

    $response = array('Success' => true, 'Info' => 'Data Berhasil di hapus');

    echo json_encode($response, JSON_PRETTY_PRINT);
}

如果通过 javascript AJAX 例程调用此函数,则不需要路由设置。为什么要为一个永远不会在浏览器中看到的漂亮 URL 烦恼?

您尝试访问的网址

http://localhost/json/public/api/mahasiswa/delete/6

表示您使用的文件组织方式不同于典型的(和推荐的)Codeigniter 结构。您可以尝试将路线更改为

$route['/json/public/api/mahasiswa/delete/(:any)'] = 'MahasiswaController/deleteMahasiswa/$1';

看看会发生什么。

/(:any) 是一个通配符,连接到语句末尾的 /$1。基本上是说“取最后一个斜杠之后的任何内容,并将 $1 替换为该值”。

【讨论】:

  • 我不知道如何执行我尝试使用localhost/json/public/api/mahasiswa/delete/16 访问的代码仍然无法正常工作:(
  • 我不知道如何使用 (:any) :( 你能举个 URL 执行的例子吗?
  • 你的代码和我的代码呵呵 :D 我只是混淆了如何执行 (:any)
  • 我只是更仔细地查看了您问题中的 URL。我会更新我的答案。
  • 好的,请检查我的节目数据,它有效,但我的删除数据仍然无效:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-25
  • 2016-12-18
  • 1970-01-01
  • 2019-08-14
  • 2016-05-14
相关资源
最近更新 更多