我完成了關於在codeigniter user_guide上創建新聞應用程序的教程。我現在試圖擴展教程網站,以便將文本加載到可以重新輸入並用於更新條目的textarea中。我希望查看文章頁面成爲更新的同一頁面。該視圖加載正確,但是當我點擊提交時,它將我從localhost/ci/news/foo帶到404本地主機/ ci/news/view。我主要嘗試模仿創建,並且只更改模型查詢,但由於我一直在掙扎一段時間,所以嘗試了幾個想法。使用codeigniter更新
我懷疑問題可能是下列之一。
東西,我向CI /新聞/視圖 誤用我的$塞變量 Misconnecting在我的模型查詢控制器和 語法模型。
我會發布所有相關的代碼。
這是我的控制器功能的視圖,這也是更新發生的地方。
public function view($slug)
{
$this->load->helper('form');
$this->load->library('form_validation');
$data['news_item'] = $this->news_model->get_news($slug);
$slug = $slug;
$this->form_validation->set_rules('text', 'text', 'required');
if (empty($data['news_item']))
{
show_404();
}
$data['title'] = $data['news_item']['title'];
if ($this->form_validation->run() === FALSE)
{
$this->load->view('templates/header', $data);
$this->load->view('news/view', $data);
$this->load->view('templates/footer');
}
else
{
$this->news_model->update_news();
$this->load->view('news/success');
}
}
這裏是我的update_news()在模型
public function update_news($slug)
{
$data = array(
'slug' => $slug,
'text' => $this->input->post('text')
);
$this->db->set('slug', $slug);
$this->db->update('news', $data);
}
和我view.php
<?php
echo validation_errors();
echo form_open('news/view');
echo '<h2>'.$news_item['title'].'</h2>';
?>
<label for="text">Text</label>
<textarea name="text"><?php echo $news_item['text']; ?></textarea><br />
<input type="submit" name="submit" value="Update" />
</form>
UPDATE:的要求,我get_news模型功能。
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();
}
您可以添加 「get_news」 功能? – 2014-09-10 16:20:18