Хорошо, подробности извините.У меня есть две таблицы: Таблица 1.
**faculty_salaries**
id
personnel_profile_id
faculty_position_id
faculty_salary
Таблица 2.
**personnel_profiles**
id
azinstitution_id
fy_year
title
faculty_turnover_rate
staff_turnover_rate
мой контроллер для страницы это.
public function asuSalaries()
{
$associated = ['PersonnelProfiles', 'StaffPositions', 'PersonnelProfiles.Azinstitutions'];
$staffSalaries = $this->StaffSalaries->find('all')->contain($associated)->where(['PersonnelProfiles.azinstitution_id' => 1])->sortBy('PersonnelProfiles.fy_year', SORT_DESC);
$collection = new Collection($staffSalaries);
$salaryYears = $collection->match(['staff_position_id' => 1]);
$asuAdministrators = $collection->match(['staff_position_id' => 1])->extract('staff_salary');
$asuStaffs = $collection->match(['staff_position_id' => 2])->extract('staff_salary');
$this->set(compact('staffSalaries','salaryYears', 'asuAdministrators', 'asuStaffs'));
}
Представление выглядит следующим образом:
<thead class="thead-inverse asu-table-color">
<tr>
<th scope="col">Position</th>
<!--- loop to get all the year titles for the columns -->
<?php foreach ($salaryYears as $fyYear): ?>
<th><?= h($fyYear->personnel_profile->title) ?></th>
<?php endforeach; ?>
</tr>
</thead>
Без добавленной сортировки возвращается (для коллекции salaryYears, просто в качестве примера)
0 FY 2017
1 FY 2016
2 FY 2015
3 FY 2014
4 FY 2013
5 FY 2012
На мой взгляд, я хотел изменить этот порядок, поэтому я добавил sortBy, чтобы изменить его, но он возвращает:
salaryYears (array)
4 FY 2013
5 FY 2012
3 FY 2014
2 FY 2015
1 FY 2016
0 FY 2017
Не уверен, почему он обменивается id # 4 и 5