1

我正在使用 Codeigniter 中的课程任务管理器模型,并试图找出我还能做些什么来改进 get_all 方法。

这是一个好方法吗(见下面的代码)?我连接一些值的原因是因为我试图在控制器中做更少的工作。这个可以吗?

到目前为止,任务管理器使用 4 个表 - 用户、任务、任务类型(编辑、审查等)和课程

这是代码

function get_tasks(){

    $query = $this->db->query(' 
    SELECT 

            tasks.id,
            tasks.created,
            tasks.expires,

            types.name as type,
            courses.name as course,

            CONCAT_WS(" ", assigned_by.first_name, assigned_by.last_name) as assigned_by,
            CONCAT_WS(" ", users.first_name, users.last_name) as user

        FROM
            '.$this->tables['tasks'].' tasks
        LEFT JOIN 
            '.$this->tables['types'].' types ON (types.id = tasks.type_id)
        LEFT JOIN 
            '.$this->tables['users'].' assigned_by ON (assigned_by.id = tasks.assigned_by_id)
        LEFT JOIN 
            '.$this->tables['users'].' users ON (users.id = tasks.user_id)
        LEFT JOIN 
            '.$this->tables['courses'].' courses ON (courses.id = tasks.course_id)

        ORDER BY 
            tasks.created ASC'
    ); 

    return $query->result();

}

这就是我在控制器中调用方法的方式:

$this->load->model('Task_model', 'task');

$this->data['tasks'] = $this->task->get_tasks();
4

0 回答 0