第一种方法
据一系统方法生成的视图有点麻烦的是,认为它是使用Smarty更方便。尝试添加Smarty模板。
复制代码代码如下所示:
date_default_timezone_set(PRC);
类placecontroller延伸ccontroller {
保护_smarty美元;
功能__construct(){
家长::__construct('place '); / /调用父类的构造函数接受一个参数,ID控制器参数
$路径= Yii::getpathofalias('application '); / /得到保护的文件夹的绝对路径
包括(dirname($路径)。directory_separator。'smarty'。directory_separator。'smarty。类。'/library/loader.php'); / / Smarty的路径
美元-> _smarty =新的Smarty();
这_smarty美元-> -> template_dir = dirname($路径。directory_separator。'template'。directory_separator); / /模板路径
}

其中一个主要问题是自动加载类来执行冲突的问题。
Yii注册自动加载spl_autoload_register(阵列('yiibase ','autoload ')),Smarty还注册了一种自动加载,spl_autoload_register('smartyautoload '),Yii注册之前,当遇到一个类名,第一是Yii的自定义功能实现自动加载类,每个类的名字与Smarty在第一,也被称为Y型自动加载功能,但如果你不满足一自动加载条件下,将Smarty自动加载功能,实现然而,在上课的时候自动加载Smarty类,它符合逻辑语句的Yii自动加载类,结果一使用包括声明可以包含在这个类不会找到。
解决的办法是跳出的Yii定义自动加载功能当smarty类的自动加载,以便执行Smarty负载功能。
具体实施是在yiibase类修改加载功能,添加以下代码
复制代码代码如下所示:
公共静态函数加载($ className)
{
使用使错误文件可能出现。
如果(preg_match( / /我自作聪明,$ className)){ / / Smarty包含只要类名,无论大小写,返回,自动加载功能从而跳出来的一类执行Smarty自动加载。
返回;
}
Yii自动加载类的代码
}

这可以让你在每一个动作都使用Smarty模板。
复制代码代码如下所示:
公共功能actionindex(){
美元_smarty ->分配->(测试、测试);
美元_smarty ->显示->('创建。HTML);
}

第二方法:
在扩展文件夹下的保护,Smarty模板插件放置和csmarty类文件设置。内容如下
复制代码代码如下所示:
< PHP
require_once(Yii::getpathofalias('application。扩展。Smarty的)。directory_separator。'smarty。类。php);
定义('smarty_view_dir,Yii::getpathofalias('application。观点));

类csmarty延伸Smarty {
const dir_sep = directory_separator;
功能__construct(){
家长::__construct();

美元-> template_dir = smarty_view_dir;
美元-> compile_dir = smarty_view_dir。自::dir_sep 'template_c;
此缓存=真的;
美元-> cache_dir = smarty_view_dir。自::dir_sep 'cache;
美元-> left_delimiter =<——{;
美元-> right_delimiter =} -->;
美元-> cache_lifetime = 3600;
}
函数(init){ }
}
>

然后建立template_c,缓存,和其他文件夹samrty。
接下来是配置部分。
打开保护/配置/ main.php到元件阵列
复制代码代码如下所示:
'smarty' = >阵列(
类= > 'application。扩展。CSmarty,
),

最后,你可以尝试用Yii Smarty::APP()->行动直接Smarty。如果Yii:用于每次动作:APP()-> Smarty是比较麻烦的,它可以添加到控制器下的组件
复制代码代码如下所示:
保护$ Smarty =;
受保护函数init(){
美元-> Smarty = Yii应用::()-> Smarty;
}

然后在行动上,你可以直接使用美元这-> Smarty Smarty。