1 回答

TA贡献1995条经验 获得超2个赞
由于您可以通过视图上下文访问控制器实例$this
,我建议您这样做:
创建局部视图 php 文件,您可以在其中构建您的 mixin(js + php),它显然将包含任何脚本类型,并在 PHP 之上具有某些条件。
在视图上下文中使用
CBaseController#renderPartial
(实际上返回字符串而不是渲染,根据第三个参数return = true
)将混合视图内容作为字符串获取并将其作为第二个参数传递给Yii::app()->clientScript->registerScript
。
实现看起来像这样:
// _partial_view.php
// here is your mixin between js + php
/* @var $this CController */
<?php
echo '<script>' .
Yii::app()->user->isGuest
? 'alert("you\'re guest")'
: 'alert("you\'re logged user")'
. '</script>';
然后返回到您注册的 js 调用:
<?php Yii::app()->clientScript
->registerScript("form",
$this->renderPartial('_partial_view.php', [], true), // setting 3rd parameter to true is crucial in order to capture the string content instead of rendering it into the view
CClientScript::POS_END); ?>
- 1 回答
- 0 关注
- 121 浏览
添加回答
举报