模型/控制器中的访问视图

Awa*_*wan 1 php zend-framework render view

我有一个类MyData.php像这样:

class myData {
  function render() {
    $view = new Zend_View();
    $view->str = 'This is string.';
    echo $view->render('myview.phtml');
  }
}
Run Code Online (Sandbox Code Playgroud)

和myview.phtml文件:

<div id='someid'><?= $this->str ?></div>
Run Code Online (Sandbox Code Playgroud)

在另一种观点中,我正在做这样的事情:

<?php
    $obj = new myData ();
    $obj->render(); // it should be <div id='someid'>This is string.</div>
?>
Run Code Online (Sandbox Code Playgroud)

它给了我以下例外:

Message: no view script directory set; unable to determine location for view script
Run Code Online (Sandbox Code Playgroud)

MyData.phpmyview.phtml在同一目录中.

Mar*_*cin 5

您正在创建一个新的Zend_View实例.你不应该这样做.要获取现有视图实例,您可以执行以下操作:

$view = Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view');
Run Code Online (Sandbox Code Playgroud)

另外,我认为视图脚本路径应该相对于APPLICATION_PATH/views/scripts文件夹.