Php 如何将phtml视图文件与自定义视图帮助器绑定
我想为页面上的几个控件创建自定义视图帮助器。我决定使用自定义视图帮助器,因为这些控件对于不同的用户(已登录和未登录)可能不同。然而,我想为我的视图设置布局文件,而不是仅仅在调用函数中返回html代码。有可能这样做吗?或者只有子视图允许为它们设置phtml视图文件 编辑(因为我的问题引起了很多困惑) 这是我的视图助手调用函数:Php 如何将phtml视图文件与自定义视图帮助器绑定,php,view,zend-framework2,Php,View,Zend Framework2,我想为页面上的几个控件创建自定义视图帮助器。我决定使用自定义视图帮助器,因为这些控件对于不同的用户(已登录和未登录)可能不同。然而,我想为我的视图设置布局文件,而不是仅仅在调用函数中返回html代码。有可能这样做吗?或者只有子视图允许为它们设置phtml视图文件 编辑(因为我的问题引起了很多困惑) 这是我的视图助手调用函数: public function __invoke() { $authService = new AuthenticationService(); $body
public function __invoke()
{
$authService = new AuthenticationService();
$body = "<ul class='nav navbar-nav navbar-right'>";
if(!$authService->hasIdentity())
{
$body .= $this->wrapLi($this->makeUrl($this->view->url('users/default', array('controller' => 'register')), $this->view->translate('Register')));
$body .= $this->wrapLi($this->makeUrl($this->view->url('users/default', array('controller' => 'login')), $this->view->translate('Login')));
}
if($authService->hasIdentity())
{
$body .= $this->wrapLi($this->makeUrl($this->view->url('users/default', array('controller' => 'logout')), $this->view->translate('Logout')));
}
$body .= "</ul>";
return $body;
}
公共函数调用()
{
$authService=newauthenticationservice();
$body=“ ”;
返回$body;
}
正如您可能看到的,它只返回html。
我在layout.html中使用此帮助程序的方式如下:
<?php echo $this->LoginViewHelper(); ?>
我想知道是否有其他方法可以创建由invoke函数返回的html。如果有可能制作模板。我想您可能有点迷路了,加载html的方法是使用视图,这些视图通常是从控制器调用的,您可以识别它们,因为它们在方法名称的末尾有action一词 我建议您安装zend framework 2框架,它已经提供了一个包含一些视图和控制器的模块 但是如果你想做一些像你现在想做的事情。您可以在应用程序模块上创建一个名为Helper的新文件夹,定义一个名称空间,如第一行:
namespace Application\Helper;
然后创建一个静态方法:
class H {
public static function LoginViewHelper(){
}
}
在你看来,就这样称呼它吧
<?php echo \Application\Helper\H::LoginViewHelper() ?>
我完全不明白你的问题。似乎你问了三个不同的问题,你能澄清并专注于一个问题吗?关于视图帮助程序的创建,您是否阅读了手册以及如何自己创建视图帮助程序?我已经完成了自己的视图帮助程序,它返回了一些html。在这一刻它运转良好。然而,我想知道是否有可能为它创建一些视图,就像为常规视图创建一样。而不是返回纯html。视图脚本是纯文本文件。可以访问视图脚本中的视图辅助对象,甚至可以在视图辅助对象中渲染其他视图脚本。这就是您的问题,如何在视图帮助器中呈现视图脚本?