1

更新関数を作成しましたが、404エラーが発生し続け、何が問題であるかを理解できません。ヘルプが適用されますありがとうございます。

コントローラーnews.php

 public function update($id)

    {
    $id = $this->uri->segment(3);
    $data = array(
   'title' => $this->input->post('title'),
   'text' => $this->input->post('text'),
   'slug' => $this->input->post('slug'),
    );
   if($this->news_model->exists($id)) {
   $this->news_model->update($id, $data);
   } else {
   $this->news_model->insert($data);
  }

  }

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>
4

3 に答える 3

0

フォームを送信すると404がもらえますか?

フォームの開口部を次のように変更してみてください。

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

または、URIヘルパーをアクティブにしている場合:

<?php echo form_open(base_url() . 'news/update/'.$news_item['id']) ?>
于 2013-03-10T22:32:28.240 に答える
0

URL ヘルパーをロードして、構成フォルダー内の構成ファイルbase_urlから yourpath または ex に index.php を使用する場合は yourpath/index.php を設定してみてください。http://localhost/codeigniter/index.php、ビューを次のように更新します <?php echo form_open(base_url() . 'news/update/'.$news_item['id']) ?>

于 2013-03-11T02:02:51.143 に答える
0

フォームを開いたときにスラッシュが欠落していると思います。あなたが持っている

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

しかし、そうあるべきです

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

また、@Mohamed Nagy に同意します。URL ヘルパーをロードして base_url() を使用する必要があります。

私が気付いた他のいくつかのことは、あなたのモデルでは更新関数が update_news() と呼ばれていますが、コントローラーでは update() を呼び出していることです。これはおそらくエラーを引き起こしています

$this->uri->segment(3);また、とにかく関数に渡すときにIDを取得するために使用しているのはなぜですか?

于 2013-03-11T10:27:57.647 に答える