0

我有一个模型类,女巫基本上是带有 getter 和 setter 的数据库表中的字段。

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;
    }
    ...
}

在我的 BaseTableGateway 类中,我有一个方法 save,它采用这个模型对象并使用 get 方法将数据提取到一个数组中。

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

我需要 getTransferFields() 方法将对象绑定到我的表单,但我不需要它位于最终数组中(在提取时被排除)。

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

此方法完全符合我的要求,但仅适用于 1 种方法。我不知道如何过滤超过 1 种方法。有谁知道这将如何实现?

4

1 回答 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;
    }
于 2013-06-15T14:24:16.823 回答