ZF2使用FilterProviderInterface来筛选类方法
我有一个模型类,它基本上是数据库表中带有getter和setter的字段ZF2使用FilterProviderInterface来筛选类方法,filter,zend-framework2,class-method,Filter,Zend Framework2,Class Method,我有一个模型类,它基本上是数据库表中带有getter和setter的字段 class RealEstate extends BaseModel implements FilterProviderInterface { public $cityId; public $stateId; ... public $transferFields = array(); public function getFilter() { ret
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()方法将对象绑定到我的表单,但我不需要它位于最终数组中(提取时被排除)
此方法完全符合我的要求,但仅适用于1个方法。我无法找到如何筛选多个方法。有人知道这是如何实现的吗?只需返回一个
FilterComposite
对象。FilterComposite实现FilterInterface,其处理方式与MethodMatchFilter
相同
例如:
public function getFilter()
{
$myFilters = new FilterComposite();
$myFilters->addFilter('someParam', new MethodMatchFilter('getSomeParam'));
$myFilters->addFilter('someOtherParam', new MethodMatchFilter('getSomeOtherParam'));
return $myFilters;
}
public function getFilter()
{
$myFilters = new FilterComposite();
$myFilters->addFilter('someParam', new MethodMatchFilter('getSomeParam'));
$myFilters->addFilter('someOtherParam', new MethodMatchFilter('getSomeOtherParam'));
return $myFilters;
}