Сортировать по полю в CakePHP - PullRequest
17 голосов
/ 23 марта 2012

Я делаю проект в CakePHP.

Я хочу написать запрос ниже в стиле CakePHP.Я написал 50%.Пожалуйста, помогите мне

$ this-> Login-> find ('all')

SELECT * FROM login  
ORDER BY FIELD(profile_type, 'Basic', 'Premium') DESC;

Ответы [ 4 ]

22 голосов
/ 23 марта 2012

Пожалуйста, попробуйте это

$this->Login->find('all', array(
 'order'=>array('FIELD(Login.profile_type, "basic", "premium") DESC')
));
4 голосов
/ 23 марта 2012

Вы можете передать опции в метод find :

$this->Login->find('all', array(
  'order' => "FIELD(Login.profile_type, 'Basic', 'Premium') DESC"
));
2 голосов
/ 07 июня 2017

Это более простой способ заказа и ограничения, который отлично работает

$this->set('users', 
    $this->User->find('all', 
        array(
            'limit' => 3,
            'order' => 'User.created DESC',
            'recursive' => 1,
       )
   )
);
2 голосов
/ 21 декабря 2015

Пожалуйста, попробуйте это:

$response = $this->Login->find('all', array('order'=>array('Login.profile_type'=>'desc')));
...