我想编辑检索到的用户,这是我的代码
我在模型中有一个选择所有用户的功能
public function retrieve() {
$this->db->select('*');
$query = $this->db->get('UserDetails');
return $query->result();
}
在控制器中,查询的数据将传递给视图
public function edit_user() {
$data['query']=$this->user_model->retrieve();
$this->layout->view('creation/update_user',$data);
}
喜欢这个
<?php foreach($query as $row): ?>
<a href="edit_user"><?php echo $row->username;?></a>
<?php echo $row->firstname;?></a>
<?php endforeach;?>
我希望当用户点击用户名时,他应该能够编辑用户 如何获取将传递给
的点击用户名的值 $username
在模型中(我知道CI是MVC,如何传递给控制器然后进行建模)
public function select_user_details() {
$this->db->select('*');
$this->db->where('username' $username);
$query=$this->db->get('users');
return $query->result();
}
在用于编辑用户的控制器中
public function edit_user() {
$data['query']=$this->user_model->select_user_details();
$this->layout->view('creation/update_user',$data);
}
在显示屏中
<? foreach($query as $row)
<input type="text" name="uname" value="<?php echo $row->username; ?>"/>
<input type="text" name="name" value="<?php echo $row->names; ?>"/>
<?php endforeach; ?>
答案 0 :(得分:0)
您可以向编辑用户方法添加参数,并在控制器中进行重定向。因此,如果没有指定id,则获取所有用户的列表,但如果有id,则运行新的模型函数(使用WHERE user_id = $ id而不是$ username查询)并加载另一个视图。像这样:
public function edit_user($id = false) {
if ( !$id ) {
$data['query']=$this->user_model->retrieve();
$this->layout->view('creation/update_user',$data);
}
else {
$data['query']=$this->user_model->retrieve_one_user($id); // new model method for a single user
$this->layout->view('creation/edit_user',$data); // new view
}
}
在您看来,您需要将您的用户名链接转到... / edit_user / USER_ID_HERE。
您还可以使用不同的控制器方法:例如list_users()
和edit_user($id)
。此外,您可以在单个视图中执行此操作。这完全取决于您以及哪种方式最适合您的应用。有数百种方法可以做到。
要使用最少量的更改来执行此操作,只需在select_user_details方法(以及控制器中的edit_user方法)中添加一个参数:
public function select_user_details($username) {
...
public function edit_user($username) {
...
但请再次确保用户列表中的链接转到... / select_user_details / my_username_here。像这样:
<a href="edit_user/<?php echo $row->username;?>"><?php echo $row->username;?></a>
答案 1 :(得分:0)
在视图中 -
<?php foreach($query as $row): ?>
<a href="<?php echo base_url()?>controllerName/edit_user/<?php echo $row->username;?>"><?php echo $row->username;?></a>
<?php echo $row->firstname;?></a>
<?php endforeach;?>>
在控制器中 -
function edit_user($userName)
{
$data['query']=$this->user_model->retrieve($userName);
$this->layout->view('creation/update_user',$data);
}
在模型中 -
public function retrieve($userName) {
$this->db->select('*');
$query = $this->db->get('UserDetails');
return $query->result();
}