Учебник по Codeigniter удалить Сообщение не работает - PullRequest
1 голос
/ 08 марта 2012

После завершения учебника из руководства пользователя codeigniter я столкнулся с проблемой, которую я заставлял последние два часа. Я пытаюсь добавить функциональность для удаления сообщения, выбранного по идентификатору, я новичок в PHP и не могу найти решение своей проблемы:

Контроллер

public function delete($id){
    $id = $this->uri->segment(3);

    $data['title'] = 'Delete an item';

    if($this->news_model->delete_news($id)){
        $this->load->view('templates/header', $data);  
        $this->load->view('news/success');
        $this->load->view('templates/footer');
    }else{
    }
}

Модель

  public function delete_news($id){
        $this->db->where('id',$id)->delete('news');

        return $this->db->affected_rows();
    }

Маршрутизация

   $route['news/delete/(:num)'] = 'news/delete/$1';

Я вызываю функцию из индексной страницы, где все сообщения отображаются с якорем:

<p><a href="<?php echo site_url('news/delete/'.$news_item['id'])?>">Delete article</a></p>

и он вызывает правильный URL (http://localhost/webapp/index.php/news/delete/2), который должен правильно выполнить и удалить сообщение с идентификатором 2 из моей таблицы новостей.

Я действительно не могу понять, где ошибка, но выполняя это, я получаю 404. Что я делаю неправильно?

1 Ответ

3 голосов
/ 08 марта 2012

В вашей функции delete я не вижу, что вы загрузили news_model. Это может быть проблемой, если она не загружается автоматически. Возможно, начните с проверки, что контроллер говорит с моделью, вставив:

echo 'Hello Model';

в функции delete_news вашей news_model.

EDIT:

Вместо

  if($this->news_model->delete_news($id)){ 
     //conditions
  }

И

Пусть ваша модель отправит T / F в зависимости от исполнения. Это скажет нам, если ошибка в SQL. Возвращая TRUE, несмотря ни на что, мы увидим, работает ли эта модель:

 return TRUE;

Попробуйте добавить шаг (для проверки ошибок)

$del = $this->news_model->delete_news($id);
echo 'del';
if($del == TRUE){
   //conditions
}

С 404 - я тоже подозреваю, что это проблема маршрутизации. Я тоже посмотрю на это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...