1

私のアプリケーションにはカスタム構成があり、それらをモデルに取り込みたいと考えています。

私は一方向について読みましたが、実行できません:

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

私が間違っていることを誰が知ることができますか?

4

1 に答える 1

2

BaseModelServiceManager を使用して拡張するクラスのインスタンスを作成する必要があります。を使用する場合はnew、ServiceManager を自分で設定する必要があります。

于 2012-11-21T21:42:57.847 に答える