сортировка при чтении массива

#cakephp #cakephp-1.3

#cakephp #cakephp-1.3

Вопрос:

В моем контроллере у меня есть

 var $uses = array('User','Customer');
  

затем я использую read для вызова пользователей

 $loggedOutCustomer = $this->User->read(null, $this->Auth->user('id'));
  

это дает мне пользователей и разделители, которые я могу использовать, но я хочу выполнить сортировку по имени клиента. Как я могу это сделать в cake?

Комментарии:

1. Пожалуйста, помечайте только ту версию, которую вы используете. И каковы отношения между пользователем и заказчиком?

Ответ №1:

Вы можете установить порядок по умолчанию в вашей пользовательской модели.

Если клиент принадлежит пользователю, у пользователя есть много клиентов.

В вашей пользовательской модели под hasMany переменной найдите запись Customer и добавьте Customer.name в order ключ массива.

Также, пожалуйста, удалите тег версии cakephp, который вы не используете.

Вы также можете добавить свои параметры сортировки при использовании метода find() вашей модели.

Это также может быть определено в массиве разбиения на страницы

Другим вариантом было бы использовать сдерживаемое поведение

Комментарии:

1. Есть ли решение, если он хочет упорядочить по другому ключу в другом месте своего кода? Т.Е. должен быть способ передать order параметр..

2. @oerd да, он может определить это в find() вызове или в массиве разбивки на страницы ( paginate ). Он также может использовать Containable поведение. Что рекомендуется

3. Я думаю, вам следует включить эти комментарии в ответ 🙂

Ответ №2:

Попробуйте это

 $loggedOutCustomer = $this->User->find('first', array('conditions' => array('User.id' => $this->Auth->user('id')), 'order' => 'Customer.name ASC'));