Yii 2:将模块的视图作为分部视图加载到另一个应用程序视图上


Yii 2: Load a module's view as a partial view on another application view

我需要将模块的视图作为部分视图加载到应用程序的另一个视图中。我在手册中找不到有关如何执行此操作的线索。

该视图完全独立于模块:

<?php
    // This is the module's class. Do I need it here?
    use vendor'xxx'cropk'CropK;
/* @var $this yii'web'View */
    $this->title = 'Cropping Test';
?>
<div class="site-index">
    <p>Cropping Test</p>
    <?php
        // ...
    ?>
</div>

我怎样才能做到这一点?

查看渲染的文档,您有几个选择:

可以采用以下格式之一指定要呈现的视图:

  • 路径别名(例如"@app/视图/站点/索引");
  • 应用程序中的绝对路径(例如"//site/index"):视图名称以双斜杠开头。将在应用程序的视图路径下查找实际的视图文件。
  • 模块中的绝对路径(例如"/site/index"):视图名称以>单斜杠开头。将在$module的视图路径下查找实际的视图文件。
  • 相对路径(例如"索引"):将在$viewPath下查找实际的视图文件。

根据这些选择,您似乎将在应用程序中指定绝对路径,或者创建路径别名并使用该语法(应用程序?主网站视图?无论它位于何处)。

因此,如果要渲染{basePath}/views/site/my_partial.php,则需要在视图中执行类似$this->renderPartial('//site/my_partial.php');的操作。