Codeigniter удалить

Я пытаюсь удалить некоторые данные из моей базы данных с помощью кнопки удаления в codeigniter... Я провел некоторое исследование и нашел эту ссылку на мой взгляд...

<td><a href='hockey/deleteskater/" . $row->id . "'>Delete</a></td>

и эта функция в моем контроллере

public function deleteskater($id){
        $this->load->database();
        $this->db->delete('skaters', array('id' => $id));
    }

Но я получаю страницу 404 Not Found... что я делаю не так?

3 ответа

Решение

Это потому что:

  1. URL, вероятно, неправильно интерпретируется (все сегменты, добавленные к текущему URL)
  2. Более важно: вы не распечатали переменную... просто '$row->id' в виде строки. Это не php-html-интерполяция

Должно быть:

<td><a href="<?php echo site_url("hockey/deleteskater/" . $row->id);?>"
     onclick="return confirm('Delete content?');">Delete</a></td>

Я позволил себе, по крайней мере, добавить предупреждение onclick, чтобы вы случайно не удалили что-либо, просто нажав на кнопку.
Кроме того, разрушительные действия должны выполняться через запрос POST (и токен CSRF для повышения безопасности).

<td><a href='hockey/deleteskater/" . $row->id . "'>Delete</a></td>

Должно быть

<td><a href='hockey/deleteskater/<?php echo $row->id ?>'>Delete</a></td>

Вы можете использовать привязку Codeigniter по умолчанию.

<td><?php echo anchor("hockey/deleteskater/'. $row->id . '", "Delete"); ?></td>
Другие вопросы по тегам