亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 php 代碼放在 yii 框架的 registerScript 中

將 php 代碼放在 yii 框架的 registerScript 中

PHP
慕哥9229398 2022-12-23 16:28:58
我想在Yii::app()->clientScript->registerScriptyii1里面放一個 php 代碼我怎樣才能把它放在這個里面?<?php Yii::app()->clientScript->registerScript("form", <<<JAVASCRIPT // I want the PHP code inside of this JAVASCRIPT, CClientScript::POS_END); ?>除了在代碼中間結束 PHP 之外還有其他方法嗎?編輯如果我放在<?PHP ?>中間,我會得到一個錯誤解析錯誤:語法錯誤,C:\xampp\htdocs\yii\project\protected\views\group_Form.php 中第 275 行的文件意外結束那條線是JAVASCRIPT, CClientScript::POS_END); ?>
查看完整描述

1 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

由于您可以通過視圖上下文訪問控制器實例$this,我建議您這樣做:

  1. 創建局部視圖 php 文件,您可以在其中構建您的 mixin(js + php),它顯然將包含任何腳本類型,并在 PHP 之上具有某些條件。

  2. 在視圖上下文中使用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); ?>


查看完整回答
反對 回復 2022-12-23
  • 1 回答
  • 0 關注
  • 113 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號