我正在使用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();