我尝试使用ID更新数据库中的行。我意识到你可以通过URI SEGMENT来实现它但是还有另一种方式作为变量$ GET。由于某种原因,它无法更新。
另一个问题,为什么当我执行URI SEGMENT时,如果它不起作用?示例代码:if($ this-> uri-> segment(3))=== false)...
由于某种原因,条件不起作用。谢谢助理。
模特:
public function updata_user($data) {
$this->db->where('id', $this->uri->segment(3));
$this->db->update('users', $data);
}
}
控制器:
public function save() {
$data = array(
'name' => $this->input->post('name'),
'email' => $this->input->post('email'),
'password' => $this->hash($this->input->post('password'),TRUE)
);
if ($this->uri->segment(3) === false) {
$this->users_model->insert_user($data);
redirect('users/index');
}
else {
$result = $this->users_model->updata_user($data);
if ($result) {
redirect('users/index');
}
}
}
观点:
<?php echo validation_errors(); ?>
<?php echo form_open('users/save'); ?>
<table class="table">
<tr>
<td>Name</td>
<td><?php echo form_input('name', set_value('name', $user->name)); ?></td>
</tr>
<tr>
<td>Email</td>
<td><?php echo form_input('email', set_value('email', $user->email)); ?></td>
</tr>
<tr>
<td>Email</td>
<td><?php echo form_input('id', set_value('id', $user->id)); ?></td>
</tr>
<tr>
<td>Password</td>
<td><?php echo form_password('password'); ?></td>
</tr>
<tr>
<td>Confirm password</td>
<td><?php echo form_password('password_confirm'); ?></td>
</tr>
<tr>
<td></td>
<td><?php echo form_submit('submit', 'Save', 'class="btn btn-primary"'); ?></td>
</tr>
</table>
<?php echo form_close();?>
答案 0 :(得分:1)
你可以将id放入隐藏输入中并使用$ this-&gt; input-&gt; post('id')你可以在模型中使用它
查看
<tr>
<td>id</td>
<td><?php echo form_hidden('id',$user->id); ?></td>
</tr>
模型
public function updata_user($data)
{
$this->db->where('id', $this->input->post('id'));
$this->db->update('users', $data);
}