我想訪問我的控制器內的服務定位器對象,但無法做到這一點。
我試圖聯機幫助,但他們大多正在跟蹤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中調用模型函數。 –