2013-06-25 3 views
0

드롭 다운 내 2 단계에서 데이터를 찾고 싶습니다. 어쩌면 내 논리가 잘못되었을 수도 있지만, 이전에 그런 일을 해왔다는 것을 기억하고 있습니다. 유일한 차이점은 항상 1 개의 간단한 결과를 얻었지만 지금은 배열을 처리해야한다는 것입니다. 코어가 하나 개의 ID를 다시 제공Yii dropDownList 중첩 된 조건 (중첩 된 dropDown이 아님)

echo $form->dropDownList($model, 'szeriaGyartmanyId', GxHtml::listDataEx(
     SzeriaGyartmany::model()->findAllAttributes(
      null, true, 'rajz_osszetett_technologia_id IN (:rajz_osszetett_technologia_id) AND keszDb<db', array(
       ':rajz_osszetett_technologia_id' => RajzOsszetettTechnologia::model()->findAllAttributes(
        null, true, 'osszetett_technologia_id = :osszetett_technologia_id', array(
         ':osszetett_technologia_id' => OsszetettTechnologia::model()->find("name='Horganyzás alatt'")->id 
        ) 
       )->id 
      ) 
     ) 
    ), array('style' => 'width: auto', 'prompt' => '')); 

(? 잘 모르겠어요 객체 또는 배열)는 아무 문제 없지만, 두 번째 수준은 배열을 다시 제공 : 여기에 내 코드입니다. 요점은, 어떻게 든 여기에 rajz_osszetett_technologia_ids 결과를 내파 할 수 있습니까? 아니면 완전히 다르게해야합니까? 바로 그 자리에 implode하려했지만 오류가 있습니다. 인수는 배열이어야합니다. 그래서 결과는 객체의 배열이라고 생각합니다.

달성하고자하는 것이 분명합니까? 나에게 그것은 어떻게 든 그것을 이렇게 명백하게하는 것처럼 보인다. 그러나 아마 나의 논리는 완전히 틀리다. 누군가 내게 올바른 방향을 가르쳐 주시겠습니까? 감사합니다. BR c

+0

달성하려는 것은 이것입니까? http://jsfiddle.net/dUcVT/ – adamors

+0

아니요, 첫 번째 단계에서 기술 테이블의 기술 ID를 찾고 싶습니다. 그게 효과가 있어요. 두 번째 단계에서는 technologyId와 관련하여 해당 테이블에있는 모든 ID를 찾고 (ID1, ID2, ID3 ...) 이렇게 제공합니다 (마지막 단계에서는 내파 된 ID에 관한 세 번째 테이블. – user2511599

답변

0

GxActiveRecord::findAllAttributes(null,true..)은 필요한 속성 집합 만있는 개체 배열을 반환합니다. 필요에 따라 ID 배열을 얻으려면 GxHtml::listDataEx()에 랩핑 한 다음 array_keys을 사용하여 키만 가져와야합니다.

echo $form->dropDownList($model, 'szeriaGyartmanyId', GxHtml::listDataEx(
    .... 
    ':rajz_osszetett_technologia_id' => implode(',', 
     array_keys(
      GxHtml::listDataEx(
       RajzOsszetettTechnologia::model()->findAllAttributes(
       .... 
       ) 
      ) 
     ) 
    ) 
    .... 
) 

아마도 사용자 지정 쿼리는 이보다 더 쉽고 명확합니다.

+0

는 대단히 훌륭합니다. 감사합니다.하지만 흥미로운 점은 쿼리 결과가 2 행이고 드롭 다운에서 1 행만 볼 수 있다는 것입니다. 왜 그럴 수 있죠? – user2511599

+0

2 행을 갖는 외부 쿼리 또는 내부 쿼리입니까? – topher

+0

아마도 솔루션과 관련이 없을 것입니다. – user2511599