2013-03-10 43 views
1

我已經創建了一個更新函數,但我不斷收到一個404錯誤,我不知道什麼似乎是問題。幫助將是appriciated謝謝你。codeigniter更新函數獲取404

控制器news.php

​​

news_model.php

public function update_news($id, $data) 
{ 
$this->db->where('id', $id); 
$this->db->update('news', $data); 
} 

路線

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

視圖

update.php

<h2>Update an item</h2> 

<?php echo validation_errors(); ?> 

<?php echo form_open('/news/update'.$news_item['id']) ?> 


<label for="title">Title</label> 
<input type="input" name="title" /><br /> 

<label for="slug">Slug</label> 
<input type="input" name="slug" /><br /> 

<label for="text">Text</label> 
<textarea name="text"></textarea><br /> 

<input type="submit" name="submit" value="Update an item" /> 

</form> 

的index.php

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

回答

0

不要提交表單,當你得到404?

嘗試改變形式開放:

<?php echo form_open($news_item['id']) ?> 

,或者如果你有activiated的URI幫手:

<?php echo form_open(base_url() . 'news/update/'.$news_item['id']) ?> 
+0

我做了你說的話,當我試圖通過鏈接打開更新頁時,我仍然收到錯誤....... codeigniter/index.php/news/update我得到一個404錯誤,所以更新頁面沒有出現,也沒有形式 – tom 2013-03-10 22:35:27

+0

另一件事情,當我點擊更新/codeigniter/index.php/news/news/update/47'新聞'出現兩次 – tom 2013-03-10 22:40:12

+0

好的。如果你在routes.php中刪除你的行,該頁面是否顯示?使用絕對路徑(base_url()),而不是你在網址 – jonixj 2013-03-10 22:42:18

0

嘗試加載網址助手,並從配置文件中的config文件夾集如果你使用index.php作爲ex,base_url給yourpath或yourpath/index.php。 http://localhost/codeigniter/index.php,並將視圖更新爲 <?php echo form_open(base_url() . 'news/update/'.$news_item['id']) ?>

+0

當我這樣做,我有我的創建按鈕創建文章 – tom 2013-03-12 18:22:53

+0

問題是什麼問題?你可以使用base_url也可以使用:'base_url()。控制器/操作' – 2013-03-12 18:58:31

+0

與我上面的代碼,當我輸入到視圖更新頁面的網址時,頁面不會出現,當我放入路由並鍵入更新頁面的URL時,它仍然不會出現所以當我點擊從文章頁面的更新鏈接時,我得到了一個404錯誤 – tom 2013-03-13 13:42:48

0

我認爲您在窗體打開時缺少正斜槓。你有

<?php echo form_open('/news/update'.$news_item['id']) ?> 

,但它應該是

<?php echo form_open('/news/update/'.$news_item['id']) ?> 

而且我@Mohamed納吉同意,你應該加載網址助手,並使用BASE_URL()

一對夫婦的其他東西,我注意到在你的模型中,你的更新函數叫做update_news(),但在你的控制器中調用update()。這可能會導致錯誤

此外,爲什麼您使用$this->uri->segment(3);無論如何將它傳遞給函數時獲取ID?

+0

我已經拿出段3,我已經把缺少正斜槓,所以它讀取<?php echo form_open('/ news/update/'。$ news_item ['id'])?>但仍然頁面沒有加載,我得到一個404錯誤 – tom 2013-03-12 14:26:32

+0

在模型中,你正在調用$ this-> news_model-> update($ id,$ data);但您需要將其更改爲$ this-> news_model-> update_news($ id,$ data);你做到了嗎? – Pattle 2013-03-12 16:24:15

+0

是的,我已經做到了這一點,但我得到404錯誤 – tom 2013-03-13 15:30:28