Php Yii框架:加载css&;由控制器定义的布局中的js?

Php Yii框架:加载css&;由控制器定义的布局中的js?,php,yii,Php,Yii,我的目标是为差异页面包含差异css(或js)。 链接css的代码位于布局文件中 我的第一个想法是将变量传递给布局,就像将变量传递给视图一样, 但我发现,这是“不能这样做的设计”从 那么,如何将放入标题(布局文件中的哪个部分) 如果我的概念错误,请纠正我。您将希望转到您的操作,并为它们注册CSS文件。例如: function actionIndex() { $cs = Yii::app()->getClientScript(); $cs->registerCssFile

我的目标是为差异页面包含差异css(或js)。 链接css的代码位于布局文件中

我的第一个想法是将变量传递给布局,就像将变量传递给视图一样, 但我发现,这是“不能这样做的设计”从

那么,如何将
放入标题(布局文件中的哪个部分)


如果我的概念错误,请纠正我。

您将希望转到您的操作,并为它们注册CSS文件。例如:

function actionIndex() {
    $cs = Yii::app()->getClientScript();
    $cs->registerCssFile(Yii::app()->getBaseUrl() . '/css/myStyle.css');
    $cs->registerScriptFile(Yii::app()->getBaseUrl() . '/js/myScript.js');

    // more stuff
}
您还可以向脚本加载器(而不是CSS)传递一个额外的参数来决定它的去向,如下所示:

// load on document ready
$cs->registerScriptFile(Yii::app()->getBaseUrl() . '/js/myScript.js', CClient::POS_READY); 

有关更多帮助,请参阅。

使用registercsfile()后,将在何处生成代码?我可以控制它在布局中的某个位置吗?对于脚本文件,如果传递另一个参数,则可以传递CClient::POS_READY、CClient::POS_BEGIN、CClient::POST_END、CClient::POS_LOAD来确定它的位置。准备就绪是在文档上准备就绪,加载是在正文上加载,开始是正文的开头,结束是正文的结尾。