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

时间:2015-06-16 16:57:51

标签: php yii2 yii-modules

我需要在应用程序的另一个视图中加载模块的视图作为局部视图。我在手册中找不到关于如何做到这一点的线索。

视图完全独立于模块:

<?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>

我该如何做到这一点?

1 个答案:

答案 0 :(得分:3)

查看render's文档,您有几个选择:

  

可以使用以下格式之一指定要渲染的视图:

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

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

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