【问题标题】:Codeigniter - Edit user as adminCodeigniter - 以管理员身份编辑用户
【发布时间】:2017-05-14 22:39:02
【问题描述】:

使用 codeigniter 工作的用户管理页面,我自己创建了编辑用户功能,它可以工作,但通知无法工作。意味着如果更新用户详细信息时出现问题,应该通过错误或成功但没有发生任何事情,但数据正在更新。

这里是模型(Admin_model.php):

public function editUser($id, $data)
{

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

控制器(Admin.php):

public function edit_user($id) 
{

    //set validation rules
    $this->form_validation->set_rules('firstname', 'First Name', 'trim|required');
    $this->form_validation->set_rules('lastname', 'Last Name', 'trim|required');
    $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');

    if ($this->form_validation->run() == FALSE)
    {

        $this->load->view('default/admin/edit_user');

    } else {

        $data = array(
            'firstname' => $this->input->post('firstname'),
            'lastname'  => $this->input->post('lastname'),
            'email'     => $this->input->post('email'),
            'updated_at' => date('Y-m-j H:i:s')
        );

        if($this->Admin_model->editUser($id,$data)) {
            $this->session->set_flashdata('global_alert','<div class="alert alert-success text-center">User updated!</div>');
            redirect('admin/users');
        } else {
            $this->load->view('default/admin/edit_user');

            $this->session->set_flashdata('global_alert','<div class="alert alert-danger text-center">Something wrong!</div>');
        }

    }

}

【问题讨论】:

  • 如何在视图文件中显示 Flash 消息?
  • 是的,我正在使用 Flash 消息视图文件头。
  • Flash 数据被存储并用于下一次会话调用。因此,您无法查看闪存数据中的错误消息。如果您刷新页面,它将出现。当您设置闪存数据然后重定向时,您的成功消息很好,这是正确的。如果您没有重定向,请将您的错误消息设置为普通变量以发送到您的视图。
  • 我已经通过使用@pgee70 答案解决了这个问题,如下所示。

标签: php mysql codeigniter codeigniter-3


【解决方案1】:

$this->Admin_model->editUser 没有返回任何内容。试试

public function editUser($id, $data)
{

    $this->db->where('id', $id);
    $result = $this->db->update('users', $data);
    if ($result === FALSE)
    {
        show_error('error !');
    }
    return $result;
}

【讨论】:

  • 它可能不会失败。但是如果 $this->db->update === FALSE 然后返回值,您可能会在 editUser 中触发错误。
  • 谢谢你的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-16
  • 1970-01-01
  • 2017-05-27
相关资源
最近更新 更多