2013-05-08 5 views
0

저는 모델 클래스 마법사가 기본적으로 getter 및 setters가있는 데이터베이스 테이블의 필드입니다. 내 BaseTableGateway 클래스에서ZF2 FilterProviderInterface를 사용하여 클래스 메서드 필터링

class RealEstate extends BaseModel implements FilterProviderInterface 
{  
    public $cityId; 
    public $stateId; 
    ... 
    public $transferFields = array(); 

    public function getFilter() 
    { 
     return new MethodMatchFilter('getTransferFields'); 
    } 

    public function setTransferFields($transferFields) 
    { 
     $this->transferFields = $transferFields; 
    } 

    public function getTransferFields() 
    { 
     return $this->transferFields; 
    } 
    ... 
} 

나는이 모델 객체를 받아 배열로 get 메소드를 사용하여 데이터를 추출하는 저장하는 방법이있다. (추출하면서 제외)

$hydrator = new ClassMethods(false); 
    $model_data = $hydrator->extract($model); 

는 내 폼 물체에 결합하는 getTransferFields() 메소드가 필요하지만, 최종 배열 될 필요 말아.

public function getFilter() 
{ 
    return new MethodMatchFilter('getTransferFields'); 
} 

이 방법은 내가하지만 1 방법 원하는 것을 정확히 않습니다. 나는 하나 이상의 방법을 필터링하는 방법을 찾을 수 없습니다. 아무도 이것이 어떻게 달성 될지 알고 있습니까?

답변

0

FilterComposite 개체를 반환하십시오. FilterComposite는 FilterInterface를 구현하고 MethodMatchFilter과 동일하게 처리됩니다. 예를 들어

:

public function getFilter() 
    { 
     $myFilters = new FilterComposite(); 
     $myFilters->addFilter('someParam', new MethodMatchFilter('getSomeParam')); 
     $myFilters->addFilter('someOtherParam', new MethodMatchFilter('getSomeOtherParam')); 
     return $myFilters; 
    }