如果是 // 就会默认去调
protected/views/layouts
,//代表 绝对路径
其实 就是 绝对和相对的关系 /代表相对路径,如module/user下的layout
用单斜杠的话默认会先找当前已经激活的模块底下的view,若当前未有激活的模块则从系统根目录下开始找,双斜杠的话就直接从系统根下开始找。
如:
$layout='//layouts/column1';
Yii 中广泛的使用了路径别名。路径别名关联于一个目录或文件的路径。它以点号语法指定,类似于广泛使用的名字空间(namespace)格式:
ootAlias.path.to.target
1. Root Alias
为方便起见,Yii 预定义了以下几个根别名:
-
system
: 表示 Yii 框架目录; -
zii
: 表示 Zii 库 目录; -
application
: 表示应用的 基础目录; -
webroot
: 表示 入口脚本 文件所在的目录。此别名从版本 1.0.3 开始有效。 -
ext
: 表示包含了所有第三方 扩展 的目录。此别名从版本 1.0.8 开始有效。
额外的,如果应用使用了 模块, (Yii) 也为每个模块ID定义了根别名,指向相应模块的跟目录。 此功能从版本 1.0.3 起有效。
通过使用 YiiBase::getPathOfAlias(), 别名可以被翻译为其相应的路径。 例如, system.web.CController
会被翻译为 yii/framework/web/CController
。
YII framework路径: Yii::getFrameworkPath()
{full URL} :http://localhost/yii_lab/index.php?r=lab/urlBoyLeeTest
protected/venders目录 :Yii::import('application.venders.*');
protected/config/main.php说明 :
'import'=>array(
......
'application.venders.*',
),
插入meta信息:
Yii::app()->clientScript->registerMetaTag('keywords','关键字');
Yii::app()->clientScript->registerMetaTag('description','一些描述');
Yii::app()->clientScript->registerMetaTag('author','作者');
Yii::app()->clientScript->registerLinkTag('alternate','application/rss+xml',$this->createUrl('/feed')); //<link rel="alternate" type="application/rss+xml" href="http://www.dreamdu.com/feed/" />
如何在控制器添加CSS文件或JavaScript文件:
Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl.'/css/my.css');
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl.'/css/my.js');
<?php echo $this->module->assetsUrl; ?>/css/main.css
调用YII框架中 jquery:Yii::app()->clientScript->registerCoreScript('jquery');
framework/web/js/source的js,其中registerCoreScript key调用的文件在framework/web/js/packages.php列表中可以查看
在view中得到当前controller的ID方法 :Yii::app()->getController()->id;
在view中得到当前action的ID方法 :Yii::app()->getController()->getAction()->id;
yii获取ip地址 :Yii::app()->request->userHostAddress;
yii判断提交方式 :Yii::app()->request->isPostRequest
得到当前域名: Yii::app()->request->hostInfo
得到proteced目录的物理路径 :YII::app()->basePath;
获得上一页的url以返回 :Yii::app()->request->urlReferrer;
得到当前url :Yii::app()->request->url;
得到当前home url :Yii::app()->homeUrl
得到当前return url :Yii::app()->user->returnUrl
项目路径 :dirname(Yii::app()->BasePath)
Yii::getPathOfAlias('webroot') 如果你自己有个目录下有些类或文件常用,可以在main.php的最上边定义一个路径别名,别名可以被翻译为其相应的路径。
'aliases'=>array(
'local'=>'path/to/local/'
), 如果是多个可以在main.php中的array中加一个配置
<?php echo $this->getLayoutFile('main'); ?>
$this->redirect('index.php?r=admin/manage');