Zend framework 如何使用特定文本渲染视图?

Zend framework 如何使用特定文本渲染视图?,zend-framework,view,php,Zend Framework,View,Php,我有这样一门课: class myData { function render(){ $str = 'This is string.'; // have to code here } } <div id='someid'></div> <?php $obj = new myData (); echo $obj->render(); // it should be <div id='someid'>This is stri

我有这样一门课:

class myData {
  function render(){
    $str = 'This is string.';
    // have to code here
  }
}
<div id='someid'></div>
<?php
$obj = new myData ();
echo $obj->render(); // it should be <div id='someid'>This is string.</div>
?>
和myview.phtml文件:

class myData {
  function render(){
    $str = 'This is string.';
    // have to code here
  }
}
<div id='someid'></div>
<?php
$obj = new myData ();
echo $obj->render(); // it should be <div id='someid'>This is string.</div>
?>

Q:现在我想在另一个phtml文件中执行类似的操作:

class myData {
  function render(){
    $str = 'This is string.';
    // have to code here
  }
}
<div id='someid'></div>
<?php
$obj = new myData ();
echo $obj->render(); // it should be <div id='someid'>This is string.</div>
?>

因此,我如何更改myData类中的render函数,使其获得myview.phtml,并将字符串置于DIV tag
)和print之间


谢谢

也许您正在寻找这样的产品:


一种可能的解决方案是使用视图帮助器。此帮助器可用于“在其自身变量范围内呈现指定模板”

特别是在myview.phtml中,您可以添加以下内容:

  <div id='someid'><?php echo $this->myText; ?></div>

然后,在另一个phtml中,您可以:

<?php
$obj = new myData ();
echo $this->partial('path/to/myview.phtml',array('myText' => $obj->render()));
?>


你是指
而不是
(注意
e
和缺少结束标记)?它出现在几个地方;否则,我会认为这是一个打字错误。@ClosureCowboy:对不起,那是一个打字错误。。问题编辑..这只是业余时间的娱乐。如果你认为它有用,就随心所欲地使用它。顺便说一句,这有点问题……我想我可以使用
return$this->partial('path/to/myview.phtml',array('myText'=>$str))。这是一种好的做法吗?@Awan。很难回答这个问题,因为我不知道myData类是什么。它是代表您的模型,还是更像只在视图中使用的视图帮助程序,还是像zend_表单,它混合了逻辑和表示(通过装饰器)。通常,您不应该将数据(即html)的表示与模型或逻辑混合在一起。您使用MVC模式来分离这些内容,而不是混合它们。但这取决于你的要求。当然,MVC的一般规则不能应用于每一种情况。@Marcin:myData类用于显示/表示网页上的数据。它不是模型或形式。我想创建一个类,该类将以HTML表格格式向我提供数据,我将在视图中呈现这些数据。@Awan。因此,它更像是一个视图助手。因此,如果您想使用ZEnter方式,我建议考虑创建自定义视图帮助器。但是以您的方式使用myData也应该可以,因为它的主要任务是渲染数据。因此,如果您想在myData类中使用partial helper,它应该能够访问当前视图。您可以通过视图中的构造函数传递当前视图对象,例如new myData($this)。这将允许您轻松访问所有视图帮助程序(我希望如此,因为我从未尝试过)。@Marcin:谢谢。它帮助了我。