diff --git a/database/sql/companies/find.sql b/database/sql/companies/find.sql index 1fac4db..d13f893 100644 --- a/database/sql/companies/find.sql +++ b/database/sql/companies/find.sql @@ -1 +1,11 @@ -SELECT * FROM companies +SELECT + companies.id AS company_id, + companies.name AS company_name, + jobs.id AS job_id, + job_type, + people.id AS person_id, + people.name AS person_name, + age +FROM companies +LEFT JOIN jobs ON companies.id = jobs.company_id +LEFT JOIN people ON jobs.person_id = people.id; diff --git a/models/company.php b/models/company.php index 38ba0af..5e4f14f 100644 --- a/models/company.php +++ b/models/company.php @@ -1,5 +1,7 @@ id), $data->name); + if($current_company === null || $current_company->id !== intval($data->company_id)){ + $current_company = new Company(intval($data->company_id), $data->company_name); + $current_company->employees = []; + $companies[] = $current_company; + } + if($data->job_id){ + $new_person = new Person(intval($data->person_id), $data->person_name, intval($data->age)); + $new_job = new Job(intval($data->job_id), null, $data->job_type, null); + $new_person->position = $new_job; + $current_company->employees[] = $new_person; + } } return $companies;