私はCodeigniterでコースタスクマネージャーモデルに取り組んでおり、get_allメソッドを改善するために他に何ができるかを見つけようとしています。
これはそれを行うための良い方法ですか(以下のコードを参照)?いくつかの値を連結する理由は、コントローラーでの作業を少なくしようとしているためです。これでいい?
これまでのところ、タスクマネージャーは、ユーザー、タスク、task_types(編集、レビューなど)、コースの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();