2011-10-25 36 views
0

我是Zend的新手,對Zend Framework有疑問。我試圖谷歌它,但沒有得到正確的答案。從Zend控制器中的視圖傳遞數據

先前的開發商的確在控制器這樣的事情

public function indexAction() 
{ 
    $abc = $this->view->abc; 
} 

我的問題是你怎麼可以指定從某種看法在控制器?如果你能這樣做,這是一個合法的任務?

+0

你只能從控制器指定查看,而不是從視圖控制器。 – hakre

+0

我知道你只是從控制器分配來查看,但我的問題是我以前的開發人員這樣做,所以這在zend中有沒有相關性?或者整個任務都是錯誤的 – Kishore

+0

但是你的問題是什麼呢?它不工作嗎? – hakre

回答

2

雖然這確實是一個不好的方法,但我可以提供一個可能的解決方案,以瞭解它是如何工作的。

我的猜測是,你以前開發人員在調度週期的早期分配一些視圖屬性,甚至可能在引導,如

// Bootstrap.php 

protected function _initGlobalViewProperties() 
{ 
    $this->bootstrap('view'); 
    $view = $this->getResource('view'); 
    $view->abc = 'abc'; 
} 

雖然確實沒有與這樣做沒有問題,認爲不應該依靠提供資源給控制器。更好的方法是創建一個適用於所有控制器的應用程序資源。

Bootstrap.php ...

protected function _initAbc() 
{ 
    $resource = 'abc'; // can be anything 

    $this->bootstrap('view'); 
    $view = $this->getResource('view'); 
    $view->abc = $resource; 

    return $resource; // adds resource into Application registry 
} 

,並在控制器中......

$abc = $this->getInvokeArg('bootstrap')->getResource('abc'); 
相關問題