0

我在 CI 2.1 中的更新有一些问题我按照用户指南“mini-tut”来创建电子新闻,但我不明白如何用表格更新记录。

我的更新模型是:

    // update dei record
public function update_news($id)
{
    $data = array(
        'title' => $this->input->post('title'),
        'slug' => $this->input->post('slug'),
        'text' => $this->input->post('text')
        );

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

我怎样才能使控制器更新?我尝试:

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

  $data['title'] = 'Update an intem';

  $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/update');
   $this->load->view('templates/footer');
  }
 else
  {
   $this->news_model->update_news($id);
   $this->load->view('news/success');
  }
 }

但我显示一个 404() 页面...

更新的意见是:

    <h2>Update an item</h2>

<?php echo validation_errors(); ?>

<?php echo form_open('news/update') ?>

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

任何人都可以帮助我如何进行“简单”更新以了解 CI 逻辑?

4

3 回答 3

1

如果我明白你想要什么,那么你应该将 $this->input->post(x) 从你的控制器传递给模型。我个人一直这样使用它:

控制器:

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

您的模型应如下所示:

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

您的控制器使用第一段作为控制器方法的参数:

public function update($id)

您也可以尝试使用

$id = $this->uri->segment(3);
于 2012-04-16T08:35:43.733 回答
0

//控制器 public function update($id) { $this->load->helper('form'); $this->load->library('form_validation');

    $data['title'] = 'Update an intem';

    $this->form_validation->set_rules('title', 'Title', 'required');
    $this->form_validation->set_rules('text', 'text', 'required');
    $data['news'] = $this->news_model->get_news_by_id($id);


    if ($this->form_validation->run() === FALSE)
    {
        $this->load->view('templates/header', $data); 
        $this->load->view('news/update', $data);
        $this->load->view('templates/footer');
    }
    else
    {
        $this->load->helper('url');
        $this->news_model->update_news($id);
        redirect('/news', 'refresh');
    }
}

//模型 public function update_news($id) {

    $data = array(
        'title' => $this->input->post('title'),
        'slug' => $this->input->post('title'),
        'text' => $this->input->post('text')
    );
    $this->db->where('id', $id);
    $this->db->update('news', $data);
}

看法

<label for="title">Title</label>
<input type="input" name="title" value="<?php echo $news[0]['title'];?>" /><br />
<input type = "hidden" name="id" value="<?php echo $news[0]['id'];?>" />
<label for="text">Text</label>
<textarea name="text"><?php echo $news[0]['text'];?></textarea><br />

<input type="submit" name="submit" value="Create news item" />

于 2015-05-07T04:04:52.763 回答
-1

在代码点火器中添加页面

我会给你我做过的例子

模型:

function add()      
{        
   $name=$_POST['name'];        
   $department=$_POST['dept'];      
   $degree=$_POST['degree'];        
   $mark=$_POST['mark'];    

   $this->db->query("INSERT INTO `simple`(name,department,degree,mark) VALUES('$name','$department','$degree','$mark')");       
}

控制器:

public function add()   
{   
   $this->load->model('modd');      
   $this->modd->add();      
   $this->load->view('add');    
}

意见:

添加.php

<form method="post" action="<?php base_url();?>index.php/contr/add">
    <table>
        <?php echo form_open('contr/add');?>
        <tr>
            <th>Name</th>
            <td><input type="text" name="name" /></td>
        </tr>
        <tr>
            <th>Department</th>
            <td><input type="text" name="dept" /></td>
        </tr>
        <tr>
            <th>Degree</th>
            <td><input type="text" name="degree" /></td>
        </tr>
        <tr>
            <th>Marks</th>
            <td><input type="text" name="mark" /></td>
        </tr>
        <tr>
            <td><input type="submit" name="add" value="Add" /></td>
        <?php echo form_close(); ?>
            <td>
                <a href="<?php echo base_url(); ?>index.php/contr/view"><input type="button" value="view" /></a>
            </td>
        </tr>
    </table>
于 2013-02-16T09:05:24.203 回答