2.[Yii]创建与设置默认控制器及载入模板
1.創建控制器與訪問
class IndexController extends Controller {//訪問 index.php?r=index/index//r=后面 其中第一個是控制器,第二個是方法,r就是路由route的縮寫public function actionIndex(){$this->render("index");//載入模板文件 } }?
2.配置默認控制器
默認訪問:控制器SiteController下面的actionIndex方法
config/main.php 是主配置文件,在其中加入:
"defaultController" =>"index"?
3.載入視圖文件
在控制器中
$this->render();//載入布局文件$this->renderPartial();//不載入布局文件(也不能載入框架自帶的jquery)?
建立文件夾需要根據控制器名字來建立,里面的文件名也就是render或者renderPartial方法傳遞的名字
例如:
控制器是Index,你就需要建立一個index文件夾
$this->render("index");或者$this->renderPartial("index");需要在index文件夾里面建立index.php模板文件
?
(1)什么是布局
在views/layouts下面的文件是布局文件,公共區域,用render自動加載的文件
修改步驟:
(1)views/layouts下面,新建好布局文件。
(2)修改默認布局文件:
位置:components/Controller.php
public $layout = "//layouts/column1"
?
(2)布局內容
上邊是公用頭部
中間<?php echo $content;?>
尾部是公共尾部
?
4.如何引入外部樣式
css與js等一些文件放入assets里面,按照前后臺分開
Yii::app()->request->baseUrl
例如:
echo Yii::app()->request->baseUrl."/assets/index/css/index.css";Yii::app()返回的是你在index.php里創建的CWebApplication實例。在一次請求處理過程中,這是一個唯一的實例。Yii::app()主要負責一些全局性的功能模塊
?
5.分配給視圖數據
分配數據給視圖時,要以數組的形式分配
$name = "joshua";$age = "23";$data = array("name" =>$name,"age" => $age,"info" =>array("height"=>"178","province"=>"henan"));$this->renderPartial("index",$data); echo $name."--".$age; print_r($data);?
6.處理視圖中的分配數據
在Yii框架中,數據以對象的形式存在
也就是說,從數據庫中取出的數據都是以對象的形式存在
所以循環數據時是這樣的
<?php foreach($data as $v);?> <li><?php echo $v->title;?><li> <?php endforeach;?>?
7.擴展自定義函數
在protected目錄下見自己的擴展函數
例如:自定義一個打印數組的函數?functions.php
//格式化打印數組 function P($arr) {//首先判斷是否數組if(is_array($arr)){echo "<pre>";print_r($arr);echo "</pre>";}else{echo "參數不是數組!";} }并在入口處引入該文件
include dirname(__FILE__).'/protected/functions.php';?
轉載于:https://www.cnblogs.com/joshua317/articles/3910881.html
總結
以上是生活随笔為你收集整理的2.[Yii]创建与设置默认控制器及载入模板的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 根据实例类型反射操作数据库(简单通用表操
- 下一篇: DBUtil使用步骤