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 ответа
Решение
Это потому что:
- URL, вероятно, неправильно интерпретируется (все сегменты, добавленные к текущему URL)
- Более важно: вы не распечатали переменную... просто '$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>