PHP YII 在视图中注入静态 HTML 文件

PHP YII inject static HTML file inside view

php 和 yii 框架的新手。 我在前端将 YII 与 angular js 混合,为此我需要在 YII 视图中注入静态 html 文件(angular 模板)。这样就可以使用 id 从 $templateCache 中直接使用它们。

我尝试过的是
1. $this->render(); //内部视图
2. $this->renderFile(); //内部视图

所以基本上我的代码是这样的

<div class="container container-fluid" ng-app="shopsApp">
<!--angular templates-->
<script type="text/ng-template" id="shop-create.html">
  <?php $this->renderFile('/_partials/shop-create.html.php') ?>
</script>

我收到的错误是

require(/_partials/shop-create.html.php): failed to open stream: No such
file or directory
(C:\xampp\htdocs\freshmonk\yii\framework\web\CBaseController.php:130)

错误表示目录不存在。我认为问题出在静态 html 文件的路径上。尝试使用 $this->renderFile(Yii::app()->baseUrl.'/_partials/shop-create.html.php') 代替。如果不起作用,请尝试从末尾删除 .php 扩展名。

查看渲染 渲染部分。它用于渲染视图,但主要区别在于它不会将布局应用于渲染结果。因此,它主要用于渲染局部视图或 AJAX 响应。

工作原理

它采用给定的别名,并使用所有局部变量(例如当前 运行 控制器和模块以及别名定义)将其转换为文件路径。然后它几乎只使用渲染文件。

$this->renderPartial($view);

你的情况是这样的

$this->renderPartial('_partials/shop-create.html');

使用renderPartial();

也许参数应该像这样在前面加上“//”

    $this->renderPartial('//layouts/templates/my_template');

“//”是您的 /themes/[theme_name]/views/,或者如果您没有在配置文件中设置主题文件夹,它位于 /protected/views/

解决了这个问题。因为我是 PHP 的新手,所以我在导入所需文件后丢失了 Yii->import。问题不复存在。