2012-11-21 72 views
1

在我的應用程序中,有自定義配置,我想讓它們進入模型。Zend框架2:如何從模型獲取自定義配置?

我讀到一種方法,但它不能執行:

namespace Core\Model; 

use Zend\Db\TableGateway\AbstractTableGateway; 
use Zend\Db\TableGateway\Feature\FeatureSet; 
use Zend\Db\TableGateway\Feature\GlobalAdapterFeature; 
use Zend\Db\Sql\Delete, 
    Zend\Db\Sql\Insert, 
    Zend\Db\Sql\Update, 
    Zend\Db\Sql\Select; 

use Zend\ServiceManager\ServiceLocatorAwareInterface; 
use Zend\ServiceManager\ServiceLocatorInterface; 

class BaseModel extends AbstractTableGateway implements ServiceLocatorAwareInterface 
{ 

    protected $serviceLocator; 

    public function setServiceLocator(ServiceLocatorInterface $serviceLocator) { 
     $this->serviceLocator = $serviceLocator; 
    } 

    public function getServiceLocator() { 
     return $this->serviceLocator; 
    } 

    public function __construct() 
    { 
     $this->featureSet = new FeatureSet(); 
     $this->featureSet->addFeature(new GlobalAdapterFeature()); 
     $this->initialize(); 
    } 
} 

在模型予規定

$config = $this->getServiceLocator()->get('config'); 

$config = $this->getServiceLocator(); 

但結果= NULL

誰能說出我做錯了什麼?

+0

那麼:$ this-> getServiceLocator() - > get('Configuration'); –

+0

你如何創建BaseModel類的實例?如果您沒有從應用程序的預配置服務管理器中獲取它,服務定位器將不會自動注入到您的對象中。 –

回答

2

您必須使用ServiceManager創建延伸BaseModel的類的實例。如果您使用new,那麼您必須自己設置ServiceManager。