2017-11-16 5 views
-1

()와 :에 대한 yii2에서 쿼리를 작성하는 방법 롤업과 롤업 검색 (find)를 작성하는 방법

$leadsCount = Approval::find() 
       ->select(['COUNT(id) AS cnt, coalesce(status, "total")']) 
       ->groupBy(['status']) 
       ->with(rollup) 
       ->all(); 

쿼리를 실행하는 동안이
점점 오전 같은 오류 : 정의되지 않은 상수 롤업의 사용 - 가정 '롤업'

+0

방금 ​​rollup으로'find()'를 호출했습니다. 그러면 당신의 질문은 무엇입니까? 코드를 실행할 때 오류가 발생합니까? 오류 메시지 란 무엇입니까? – sjaustirni

+0

다음과 같은 오류가 발생합니다 : 정의되지 않은 상수 롤업 - 가정 된 '롤업'사용 –

+0

글쎄, 질문에 추가하십시오. – sjaustirni

답변

1

나는 당신이 의미하는 것 같아요 : 공단 뭔가 방법 with()은 대상 관계에 관한 것입니다

$leadsCount = Approval::find() 
       ->select(['COUNT(id) AS cnt, coalesce(`status`, "total")']) 
       ->groupBy(new \yii\db\Expression('`status` ASC WITH ROLLUP')) 
       ->all(); 

무엇인지 다른.

MySQL의 reserved word이기 때문에 상태 인도 인용해야합니다.

btw : asArray() (->asArray()->all();)도이 쿼리로 승인 개체를 얻지 못하기 때문에 사용할 수 있습니다.

+0

같은 오류가 작동하지 않는 경우이 쿼리와 함께 ROLLUP을 사용하여 총 개수를 얻으려고합니다. –

+0

@AvinashRaut 내 답변이 업데이트되었습니다. 역 따옴표를 사용하여 열을 인용하십시오. HTH – robsch

+0

클래스 'Yii \ db \ Expression'이 같은 오류를 발견하지 못했습니다. @robsch –