2013-07-18 4 views
0

관련 모듈의 모델에 대한 모델에서 검색 조건을 사용하도록 설정하려고합니다. 다음은 의미를 설명하는 예입니다.Yii 모델 CGridView에 Yii-User Profile 필드 데이터가 포함 된 열

  • 'user_id'가 포함 된 'Product'모델이 있습니다.
  • Yii 사용자의 경우 '브랜드'라는 사용자 정의 프로파일 필드를 만들었습니다.
  • 모든 제품을 나열하는 내 제품 모델의 인덱스보기에 CGridView (검색/필터 기능 포함)가 있습니다.
  • 저는 '브랜드'프로필 필드 (Yii-User로 만든 맞춤 프로필 필드)를 CGridView 열에 추가하여 사람들이 '브랜드'별로 그리드보기를 필터링하고 검색 할 수있게하고 싶습니다.

나는 나의 제품 모델 관계에 다음 코드를 추가 : 다음

public function relations() 
{ 
      Yii::import('application.modules.user.models.*'); 
    Yii::app()->getModule('user'); 
    return array(
     'user' => array(self::BELONGS_TO, 'Users', 'user_id'), 
    ); 
} 

와 제품 모델의 검색 기준이 추가 :

$criteria->compare('user.brand', $this->user->profile->brand, true); 

그러나 이것은 더 긍정적 인 결과를 얻을 수 없습니다.

내가 올바른 방향으로 가고 있는지 확실하지 않습니다. 누구든지이 작업을 수행하는 방법을 알고 있습니까?

답변

1

왜 아래의 내용을 'relations()'함수에 넣으시겠습니까?

Yii::import('application.modules.user.models.*'); 
Yii::app()->getModule('user'); 

'제품'모델의 공개 또는 개인 속성을 '브랜드'로 지정해야합니다. 이 속성은 영구적이지 않고 필터 양식 값을 가져 오는 용도로만 사용됩니다.

$criteria->compare('user.brand', $this->brand, false); 

을 그리고 당신은 => '검색'에 '와 배열()에서의'브랜드 '속성'규칙() '를 넣을 필요는 가능하다 :

은 다음과 같이 사용합니다.