0

CodeIgniter を使用しており、ニュース チュートリアルを完了しました。ニュース セクション内に削除および更新ボタンを追加しようとしています。このチュートリアルの削除ボタンに関するスタックオーバーフローの投稿を見ましたが、まだ機能しません。

これがあなたの投稿から使用した私のコーディングです

news_model.php

<?php
class News_model extends CI_Model {

public function __construct()
{
    $this->load->database();
}

public function get_news($slug = FALSE)
 {
if ($slug === FALSE)
{
    $query = $this->db->get('news');
    return $query->result_array();
}

$query = $this->db->get_where('news', array('slug' => $slug));
return $query->row_array();
}

public function set_news()
{
$this->load->helper('url');

$slug = url_title($this->input->post('title'), 'dash', TRUE);

$data = array(
    'title' => $this->input->post('title'),
    'slug' => $slug,
    'text' => $this->input->post('text')
);

return $this->db->insert('news', $data);
 }


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

}





 CONTROLLER - news.php

   <?php
   class News extends CI_Controller {

public function __construct()
{
    parent::__construct();
    $this->load->model('news_model');
}

public function index()
{
    $data['news'] = $this->news_model->get_news();
    $data['title'] = 'News archive';

$this->load->view('templates/header', $data);
$this->load->view('news/index', $data);
$this->load->view('templates/footer');

}

public function view($slug)
{
    $data['news'] = $this->news_model->get_news($slug);
    if (empty($data['news_item']))
{
    show_404();
}

$data['title'] = $data['news_item']['title'];

$this->load->view('templates/header', $data);
$this->load->view('news/view', $data);
$this->load->view('templates/footer');

}

public function create()
   {
$this->load->helper('form');
$this->load->library('form_validation');

$data['title'] = 'Create a news item';

$this->form_validation->set_rules('title', 'Title', 'required');
$this->form_validation->set_rules('text', 'text', 'required');

if ($this->form_validation->run() === FALSE)
{
    $this->load->view('templates/header', $data);   
    $this->load->view('news/create');
    $this->load->view('templates/footer');

}
else
{
    $this->news_model->set_news();
    $this->load->view('news/success');
}
 }


   public function delete($id) {
   $this->news_model->delete_news($id);
   $this->load->helper('url');
   redirect('/www.shelim786.co.uk/CodeIgniter/news');
}




}




VIEWS - index.php 

<?php foreach ($news as $news_item): ?>

<h2><?php echo $news_item['title'] ?></h2>
<div id="main">
    <?php echo $news_item['text'] ?>
</div>
<p><a href="news/<?php echo $news_item['slug'] ?>">View article</a></p>
<p><a href="news/delete <?php echo $news_item['slug'] ?>">delete article</a></p>

<?php endforeach ?>

and ROUTING

  $route['news/create'] = 'news/create';
  $route['news/(:any)'] = 'news/view/$1';
  $route['news'] = 'news';
  $route['(:any)'] = 'pages/view/$1';
  $route['default_controller'] = 'pages/view';
  $route['news/delete/(:any)'] = 'news/delete/$1';

私が抱えている問題は、削除ボタンをクリックしても www.shelim786.co.uk/CodeIgniter/index.php/news のニュース記事が削除されないことです。

あなたが私を助けることができれば、私は本当に感謝します.

ありがとう、

シェリム

4

2 に答える 2

0

リンクの「削除」という単語の後にスラッシュはありません。リンクは のように表示されますhttp://www.shelim786.co.uk/CodeIgniter/index.php/news/delete 6。「削除」の後のスペースに注意してください。

ビューで、「記事の削除」リンク行をこれに変更します。

<p><a href="news/delete/<?php echo $news_item['slug'] ?>">delete article</a></p>

「delete」の後のスラッシュに注目してください。

于 2013-03-09T14:27:24.493 に答える