📜  MVC 如何在 Codeignitor 中工作?(1)

📅  最后修改于: 2023-12-03 15:17:45.207000             🧑  作者: Mango

MVC 如何在 Codeignitor 中工作?

在 Codeignitor 中,MVC(模型-视图-控制器)是一个重要的架构模式,被用来组织 web 应用程序的代码。MVC 把应用程序分成三个部分:模型(Model)、视图(View)和控制器(Controller),每个部分都有着不同的职责。

模型(Model)

模型层是负责数据处理和操作的部分。它通常用于操作数据库和处理数据对象,在 Codeignitor 中,模型通常定义为类(Class)。

模型通过将数据从数据库中提取出来、对数据进行过滤和操作,为控制器(Controller)提供必要的数据。

以下是一个简单的模型类的示例:

class User_model extends CI_Model {

    public function __construct(){
        parent::__construct();
    }

    // 获取用户信息
    public function get_user($id){
        $query = $this->db->get_where('users', array('id' => $id));
        return $query->row();
    }

    // 创建新用户
    public function create_user($data){
        $this->db->insert('users', $data);
        return $this->db->insert_id();
    }

    // 更新用户信息
    public function update_user($id, $data){
        $this->db->where('id', $id);
        $this->db->update('users', $data);
        return $this->db->affected_rows();
    }

    // 删除用户
    public function delete_user($id){
        $this->db->where('id', $id);
        $this->db->delete('users');
        return $this->db->affected_rows();
    }
}
视图(View)

视图层是用于展示数据和接收用户输入的部分,它负责把数据渲染为 HTML 页面,并向用户呈现。

视图通常是一个 HTML 文件与 PHP 代码混合的文件。在 Codeignitor 中,视图文件通常保存在 application/views 目录下。

以下是一个简单的视图文件的示例:

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>User Profile</title>
</head>
<body>
    <h1>User Profile</h1>
    <p><strong>Name:</strong> <?php echo $user->name; ?></p>
    <p><strong>Email:</strong> <?php echo $user->email; ?></p>
</body>
</html>
控制器(Controller)

控制器是用于接收和处理用户请求的部分,控制器通常会在模型层获取数据,并把数据传递给视图层进行渲染。

在 Codeignitor 中,控制器通常定义在 application/controllers 目录下。以下是一个简单的控制器示例:

class User extends CI_Controller {

    public function __construct(){
        parent::__construct();
    }

    // 查看用户信息
    public function view($id){
        $this->load->model('user_model');
        $data['user'] = $this->user_model->get_user($id);
        $this->load->view('user_view', $data);
    }

    // 新建用户
    public function create(){
        $this->load->model('user_model');
        $name = $this->input->post('name');
        $email = $this->input->post('email');
        $data = array('name' => $name, 'email' => $email);
        $user_id = $this->user_model->create_user($data);
        redirect('user/view/' . $user_id);
    }

    // 更新用户信息
    public function update($id){
        $this->load->model('user_model');
        $name = $this->input->post('name');
        $email = $this->input->post('email');
        $data = array('name' => $name, 'email' => $email);
        $rows_affected = $this->user_model->update_user($id, $data);
        redirect('user/view/' . $id);
    }

    // 删除用户
    public function delete($id){
        $this->load->model('user_model');
        $rows_affected = $this->user_model->delete_user($id);
        redirect('user');
    }
}

以上是 MVC 在 Codeignitor 框架中的基本工作方式介绍,通过使用 MVC 分离每个部分的职责,可以使得代码更加易于维护、测试和扩展。