2015-03-02 43 views

回答

3

您可以創建自己的視圖助手

namespace MyModule\View\Helper; 

use Zend\View\Helper\AbstractHelper; 

class MyHelper extends AbstractHelper 
{  
    public function __invoke() 
    { 
     return $this; 
    } 

    public function render($arg1, $arg2) 
    { 
     return 'My Parametrizable Html ' . $arg1 . ' ' . $arg2; 
    } 

    public function generateInfo() 
    { 
     return 'Your HTML goes here'; 
    } 
} 

現在創建的module.config.php該助手的條目:

'view_helpers' => array(
    'invokables' => array(
     'myHelper' => 'MyModule\View\Helper\MyHelper', 
    ), 
), 

現在你可以把它在你的看法:

<?php echo $this->myHelper()->render($arg1, $arg2); ?> 

而對於調用generateInfo():

<?php echo $this->myHelper()->generateInfo(); ?> 

您也可以從控制器調用它:

$viewHelperManager = $this->getServiceLocator()->get('ViewHelperManager'); 
$myHelper = $viewHelperManager->get('myHelper'); 

沒有視圖助手

不是最好的做法,因爲這會產生重複的代碼,但是,如果你不希望創建一個視圖Helper,那麼你總是可以在控制器中創建一個服務實例,然後將其傳遞給View。

+0

感謝您的回覆,但沒有其他最簡單的方法? – user3911183 2015-03-02 17:43:51

+0

這並不難,而且是最佳做法。我已經更新了我的答案。 – itrascastro 2015-03-02 17:47:46

+0

非常感謝:) – user3911183 2015-03-02 17:57:46

相關問題