0
我創建了一個自定義服務作爲具有一些功能(generateInfo())的PHP類(ServiceClass),我正在尋找一種方法從其他視圖調用此函數ZF2 - 如何從視圖調用自定義類php的函數?
感謝您的幫助。
我創建了一個自定義服務作爲具有一些功能(generateInfo())的PHP類(ServiceClass),我正在尋找一種方法從其他視圖調用此函數ZF2 - 如何從視圖調用自定義類php的函數?
感謝您的幫助。
您可以創建自己的視圖助手
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。
感謝您的回覆,但沒有其他最簡單的方法? – user3911183 2015-03-02 17:43:51
這並不難,而且是最佳做法。我已經更新了我的答案。 – itrascastro 2015-03-02 17:47:46
非常感謝:) – user3911183 2015-03-02 17:57:46