私は Codeigniter 2 を学んでおり、基本的なニュース アプリケーションの作成方法に関するチュートリアル/サンプルをうまく試しています。
これが機能するようになった後、ニュース項目に「レコードの削除」リンクを追加して、自分でこれを理解できるかどうかを確認したいと思いました.
これをモデルファイルに追加しましたnews_model.php
:
public function delete_news($id) {
$this->db->delete('news', array('id' => $id));
}
これをコントローラーファイルに追加しましたnews.php
:
public function delete($id) {
$this->news_model->delete_news($id);
$data['news'] = $this->news_model->get_news();
$data['title'] = 'News item deleted';
$this->load->view('templates/header', $data);
$this->load->view('news/index', $data);
$this->load->view('templates/footer');
}
これをビューファイルに追加しましたindex.php
:
<a href="/news/delete/<?php echo $news_item['id'] ?>">Delete Item</a>
最後に、これを構成ファイルに追加しました。routes.php
$route['news/delete/(:any)'] = 'news/delete/$1';
書かれているとおりに動作しているようです。
のニュース一覧ページから、/news/
ニュース項目のリンクをクリックすると、ページがリロードされると、対応する項目が消えてしまいます。
質問:
1) ページのリロード後、URL が表示されます/news/delete/id
。/id
は項目番号です。/news/
しかし、この新しい URL は必要ありません。ページをリロードして新しいコンテンツを表示したいだけです。ユーザーがページを更新するだけで別のアイテムが削除されるため、明らかに、私がこれを行った方法は潜在的に危険です。これを修正/処理する標準的な方法は何ですか?
2) 私の Controllerdelete()
関数では、最初の行の後、基本的に Controller 関数から同じ 5 行のコードを繰り返していindex()
ます。これは間違いなく質問 1 に関連していますが、もう一度言いますが、これを行うためのより良い方法は何ですか?
3)「標準」または「ベストプラクティス」に関連して見逃したことはありますか?