一、 路由
在yii框架中,通过路由获得控制器和方法。
在获得控制器和方法后,就可以进一步与视图或模型进行交互。
其格式为: http://URL/index.php?r=控制器/方法
如果modules中的控制器和方法,则路由中需要制定模块名: http://URL/index.php?r=Module/控制器/方法
没有指定路由的控制器和方法是,默认调用SiteController中的actionIndex方法
二、模板与yii框架的结合
主要通过controller中的方法渲染view实现。
实现步骤:(以创建用户登录为例)
1. 创建用户控制器
在controllers目录下,新建用户控制器 UserController.php
class UserController extends Controller { //所有的控制器均继承自Controller
function actionLogin() { // 控制器中的方法都加上action前缀
}
}
?>
2. 创建视图
在views目录下,建立与控制器同名的目录。控制器通过renderPartial()方法调用视图下的与控制器中的方法同名的模板文件。
实现步骤:
在views目录下,建立user目录,(上面已经创建了一个名为User的控制器)
将模板文件login.php拷贝到user目录下。
修改控制器代码为:
function actionLogin() {
$this->renderPartial('login');
}
3. 将模版的css,p_w_picpath等静态资源集成到系统中
css: 放在 /assets/default/css/中
p_w_picpath : 放在 /assets/default/img/中
js: 放在 /assets/js/中
为了方便调用,将静态资源目录设置为常量。
在config目录下,新建constant.php
define('SITE_URL', 'http://loacalhost/');
define('CSS_URL', SITE_URL.'assets/default/css/'); //CSS地址
define('IMG_URL', SITE_URL.'assets/default/img/'); //图片地址
define('JS_URL', SITE_URL.'assets/js/'); //JS地址
?>
修改系统入口文件index.php 引入 constant.php
添加:
require_once(dirname(__FILE__).'/protected/config/constant.php');
调用CSS时,使用 <?php echo CSS_URL; ?> style.css