将视图(php文件)作为字符串传递给yii 2中registerJS中的变量js

Posted

技术标签:

【中文标题】将视图(php文件)作为字符串传递给yii 2中registerJS中的变量js【英文标题】:pass view (php file) as string to variable js in registerJS in yii 2 【发布时间】:2020-08-23 06:42:48 【问题描述】:

我想将 php 类型的视图传递给 registerJS 中的变量 js 喜欢这里,但我不能

var view_train = '<?=$this->render("_view")?>';

运行后我看到这个错误

未捕获的 SyntaxError:无效或意外令牌

我该如何使用它?

【问题讨论】:

【参考方案1】:

使用简单的 JSON 编码:

<?php
$viewAsString = \yii\helpers\Json::encode($this->render("_view"));
$script = <<<EOF
    var view_train = $viewAsString;
EOF
$this->registerJs($script);

【讨论】:

【参考方案2】:

这可能是因为代码&lt;?=$this-&gt;render("_view")?&gt; 必须返回多行字符串或 html 数据,而 JS 不支持单引号或双引号。使用backtick 符号而不是像下面这样的单引号

var view_train = `<?=$this->render("_view")?>`;

【讨论】:

以上是关于将视图(php文件)作为字符串传递给yii 2中registerJS中的变量js的主要内容,如果未能解决你的问题,请参考以下文章

根据模型视图ID Yii2将用户登录重定向到不同的页面

Random String作为相同的字符串传递给php

将多个请求文件从视图传递给一个方法?

Yii 框架 - 从视图到控制器动作的简单传递变量

在 R 中,如何将参数作为字符串传递给像 plotXtabs2 这样的函数?

将字符串数组作为 POST 传递给 PHP