访问视图助手中的服务定位器

时间:2014-08-28 15:41:41

标签: zend-framework2 view-helpers service-locator

我无法访问自定义视图助手中的服务定位器。这是我的代码:

    <?php
    namespace Sam\View\Helper;

    use Zend\View\Helper\AbstractHelper;
    use Zend\ServiceManager\ServiceLocatorAwareTrait;
    use Zend\ServiceManager\ServiceLocatorAwareInterface;

    class Authenticated extends AbstractHelper imeplements ServiceLocatorAwareInterface
    {
        protected $authservice;

        public function __invoke()
        {
           if (!$this->getAuthService()->hasIdentity()){
                return false;
            }
            return true;        
        }

        public function getAuthService()
        {
            if (! $this->authservice) {
                $this->authservice = $this->getServiceLocator()->get('AuthService');
            }
            return $this->authservice;
        }
    }

1 个答案:

答案 0 :(得分:1)

根据评论,如果您想使用服务定位器特征,则需要在课程中使用use ServiceLocatorAwareTrait行。您目前拥有的内容应该会给您一个错误,因为您正在实现的ServiceLocatorAware接口定义的方法缺失。