Cakephp 3 сортировать по DESC два вышли из строя - PullRequest
0 голосов
/ 25 июня 2018

Хорошо, подробности извините.У меня есть две таблицы: Таблица 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

1 Ответ

0 голосов
/ 27 июня 2018

Гораздо лучше сортировать, используя данные в таблице, такие как столбец "год", а не ID.У меня регулярно возникают проблемы с идентификационными номерами (старые сидят ниже новых).

...