Я пытаюсь запросить базу данных, создавая соединение между двумя таблицами.
В частности, у меня есть список доцентов, и у каждого доцента есть Повестка дня с данными, и часы чередуются с часом. Например, в таблице
Повестка дня
id | docent_id | date | start | end |
1 | 1 | 2020-05-29 | 09:00 | 10:00 |
2 | 1 | 2020-05-29 | 10:00 | 11:00 |
3 | 2 | 2020-05-29 | 09:00 | 10:00 |
Итак, у меня в контроллере:
public function docent_get()
{
$this->load->model('Docent_model');
$result = $this->docent_model->getDocent();
if (is_null($result)) {
$this->response(null, 404);
return;
}
$this->response($result, 200);
}
и в моей модели:
public function getDocent()
{
$roles = 'Docent';
$query = $this->db->select('Persons.id, Persons.name, Persons.surname, Agenda.date, Agenda.start_at, Agenda.end_at')
->from('Persons')
->join('Agenda', 'Persons.id = Agenda.docent_id', 'INNER')
->where('Agenda.free', 'true')
->where('roles', $roles)
->get();
return $query->result();
Теперь этот запрос работает, но результатом этого запроса, например, является массив из трех, в котором доцент с одинаковым идентификатором, но разными часами повторяется дважды. По вашему мнению, возможно ли изменить ответ так, чтобы получить массив из двух, а в случае учителя с несколькими датами иметь внутри другой массив? (или что-то подобное)
Потому что на данный момент у меня есть:
(3) [{…}, {…}, {…}]
0: {id: "1", name: "name1", surname: "surname1", date: "2020-05-29", start: "09:00:00", end: "10:00:00"}
1: {id: "1", name: "name1", surname: "surname1", date: "2020-05-29", start: "10:00:00", end: "11:00:00"}
2: {id: "2", name: "name2", surname: "surname2", date: "2020-05-29", start: "09:00:00", end: "10:00:00"}
length: 3
__proto__: Array(0)