2013-12-13 1 views
1

저는 CakePHP에서 데이터를 검색 할 때 the documentation을 읽었으며 여러 개의 ORDER BY이 가능하다는 것을 분명히 보여줍니다. 그러나 나는 그것을 작동시킬 수 없다. 그것은 단 하나와 함께 잘 작동하지만, 두 개의 문자열을 가진 배열로 변경하면 어느 쪽도 적용되지 않는 것처럼 보입니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?CakePHP : 여러 기준으로 주문할 수 없습니다.

private function _bundle_users($report) { 

    $this->loadModel("User"); 
    $conditions = array(
     'ReportsUser.report_id' => $report['Report']['id'] 
    ); 

    //$order = 'ReportsUser.created DESC'; //THIS WORKS FINE 
    $order = array(//THIS SEEMS TO RESULT IN BOTH GETTING IGNORED 
      'ReportsUser.created DESC', 
      'User.last_name ASC', 
      ); 
    $this->User->bindModel(array('hasOne' => array('ReportsUser')), false); 
    $this->paginate = array('conditions'=>$conditions, 'contain'=>array('ReportsUser', 'Attempt'=>array('order' => 'Attempt.created DESC'), 'Tag', 'Resume', 'School'), 
     'order'=>$order 
     ); 
    $users = $this->Paginate('User'); 
    return $users; 
} 

나는 내가 bindModel()를 제외하고, this example 정확히 같은 일을하고있는 것 같아. 아마 그게 관련 단서 일 겁니다. $order = 'ReportsUser.created DESC';

을하지만이 무시됩니다 :

갱신 1

이 예상대로 작동 배열 구문은 문제의 일부처럼

$order = array('ReportsUser.created DESC');이 보인다.

갱신 2

내가 키 => 값의 형식을 사용하면 배열 구문도 무시됩니다 : 'ReportsUser.created' => 'DESC'

갱신 3 @Leonard에 감사, 작품을 워드 프로세서의 말에도 불구하고 :

$order = 'ReportsUser.created DESC, User.last_name ASC'; 
+0

* glares *, Cake eater. – wesside

+1

문서에 따르면, ** 이것은 갈 길이 아니지만 다음을 시도해 보았습니다 :'$ order = 'ReportsUser.created DESC, User.last_name ASC';'? – Leonardo

+0

@ 레오나르도 우와! 그게 전부가 아니야 * 어떻게 작동해야하는지는 모르겠지만 * 할 수있다 *. 그게 무슨 생각을 했니? – emersonthis

답변

0

,하지만 당신은 시도 : 문서를 통해 g, 나는이 시도를 줘야 할 것

$order = 'ReportsUser.created DESC, User.last_name ASC'; 

?

+0

하나의 문자열에서 배열 순서 절을 사용하는 것이 더 좋습니다 –

+0

@ JoséLorenzo 전체 질문을 읽었습니까? – Leonardo

+0

예, 여전히 그렇게하는 것이 좋습니다. CakePHP의 최신 버전을 사용하고 있는지 확인하기 위해 배열 조건을 사용하지 못하도록하는 케이크에 숨겨진 버그를 찾아보기를 권합니다. 나는 최근에 페이지 매김에서 주문을 사용하고 모델에서 '$ order'를 속성으로 사용할 때 버그가 발견되었음을 알고 있습니다. –

1

CakePHP에 능숙하지는 않지만 이 길을 가야하는 것하지 , 워드 프로세서에 따르면

$order = array(
    'ReportsUser.created' => 'desc', 
    'User.last_name' => 'asc', 
); 
+0

고마워. 나는 실제로 이것을 시도했지만 무시되었습니다. 배열 구문에 대해서는 위의 내 업데이트를 참조하십시오. – emersonthis

관련 문제