你只需要申報的FeatureSet的後裔,並MetadataFeature的後裔。
在自己的FeatureSet,覆蓋功能canCallMagicGet。 這裏是我是如何做到的
public function canCallMagicGet($property)
{
if ($property == 'metadata'){
$result = $this->getMetadataFeature();
return ($result!==FALSE);
}
else return parent::canCallMagicGet($property);
}
在我的情況爲例,getMetadataFeature返回MetadataFeature實例(的instanceof)從的FeatureSet類繼承財產的保護功能$發現的第一次出現。
您也可以覆蓋第二種方法,callMagicGet。 下面是一個例子如何:
public function callMagicGet($property)
{
if ($property == 'metadata'){
$metadataFeature = $this->getMetadataFeature();
return $metadataFeature->metadata;
}
else
return parent::callMagicGet($property);
}
最後,你可以在自己的MetadataFeature聲明魔術方法__get。您的__get可能會返回元數據直接來自受保護的財產$ sharedData。
總之,一旦你已經聲明自己的FeatureSet和MetadataFeature後裔,您可以使用它們替代當前的那些的。 然後,你可以調用
$tableGatewayInstance->metadata
和MetadataFeature收集將提供給您的元數據。
乾杯
這應該是有幫助的[http://stackoverflow.com/questions/13646338/return-table-primary-key-name-with-tablegateway](http://stackoverflow.com/questions/ 13646338/return-table-primary-key-name-with-tablegateway) –
好吧,我終於創建了自己的特性來訪問該屬性:)但是,我已經放棄了Zend 2作爲完全unusefull的東西。 – Ivan
@KunalDethe會更好地寫出一個解決方案..我還沒有看到如何幫助頁面。 – Erik