我想访问我的控制器内的服务定位器对象,但无法做到这一点。
我试图联机帮助,但他们大多正在跟踪ZF2
如何在ZF3中访问控制器内的服务定位器对象?
以前在zf2
服务定位器访问方式是一件轻而易举的事,我只是做$这个 - > getServiceLocator();
我已经尝试为我的控制器创建工厂类,并在那里创建createService方法,但它说我也必须实现__invoke()
方法。
我的目标是做这样的事情
public function getPropertyTable()
{
if (!$this->PropertyTable) {
$sm = $this->getServiceLocator();
$this->PropertyTable = $sm->get('Application\Model\PropertyTable');
}
return $this->PropertyTable;
}
谁能给我一个完整的步骤来实现这一目标?
我试图问这个问题之前,实现几乎所有涉及到的ServiceLocator的答案,所以请帮我标志着这个作为复制或某件事之前,忽略了错别字
[Zend Framework 3中的GetServiceLocator]的可能重复(https://stackoverflow.com/questions/42974794/getservicelocator-in-zend-framework-3) – akond
在ZF2中,确定在控制器中使用Service locator是一个非常非常糟糕坏坏的做法。这是不可能/建议在ZF3中再次使用该技巧 – Hooli
@Hooli谢谢,我完全理解并同意您的观点,我知道这就是为什么ZF3中服务经理的整个流程发生了变化的原因。但这就是我提出这个问题的原因,我不知道如何在控制器内部调用我的模型的函数。请看我是一位正在学习这项技术的新手。我希望如果你能给我一个例子,我怎样才能在Controller中调用模型函数。 –