Как получить данные из 2 связанных таблиц в одном контроллере в codeigniter? - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь получить данные из 2 связанных таблиц БД.Отделы и функции: у каждого отдела есть несколько функций.

Я хочу показать все данные в аккордеоне на одной странице.

До сих пор код работает следующим образом: объявляйте переменные отделы вконтроллер, и, как видно, в цикле foreach я назвал модель функций в переменной.

Контроллер:

public function index(){
        //Data variable declarations
        $data['page_title'] = "Departments and Functions";
        $data['page_subtitle'] = "choose an occupation for the list of users assigned";

        //Data variable declaration - from models
        $data['departments'] = $this->Department->get_all('departments');

        $this->load->view('layouts/header');
        $this->load->view('layouts/title', $data);
        $this->load->view('layouts/aside');
        $this->load->view('departments/index', $data);
        $this->load->view('layouts/footer');
    }

Здесь я хочу добавить Function-> get_by_department_id () метод.Как получить удостоверение личности динамически?

Модель занятия metond:

public function get_by_fk($table = 'occupations', $fk = "department_id" , $fk_value=$department->department_id){
        $this->db->select('*');
        $this->db->from($table);
        $this->db->where($fk, $fk_value);
        $query = $this->db->get();

        return $result = $query->result();
    }

1 Ответ

0 голосов
/ 10 июля 2019

Попробуйте использовать левое соединение

function get_departments_and_functions() {
    $sql = 'SELECT `deptartments`.*, `functions`.* 
            FROM `departments` LEFT JOIN `functions` 
                  ON `functions`.`deptartments_id` = `departments`.`id`';
    return $this->db->query($sql)->result();
}

Вы также можете запросить отделы, а затем выполнить поиск по отделам и запросить, чтобы получить функции.Затем вы вручную создадите набор результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...