TinkPHP框架學習-02控制器基本操作
1-----創建控制器
2-----訪問視圖頁面
3-----註冊變量到視圖頁面
4-----獲取表單數據
一 在Home模塊下創建控制器
舉例: 目錄tp/Application/Home/Controller下創建TestController.class.php
訪問該控制器 localhost/i/tp/Home/Test/操作方法
<?php namespace Home\Controller; useThink\Controller; class TestController extends Controller { public function test(){ echo "hello!"; } //訪問該方法hello
//http://localhost/i/tp/index.php/Home/Test/test }
博客出自"萬年",地址:http://www.cnblogs.com/wannian/p/8998141.html
二 訪問方法顯示視圖頁面
--在Home模塊下的View文件夾中
--新建文件夾與控制器名一樣,在此文件夾下建立視圖頁面
例如:
--如果Home/Controller文件夾下有TestController.class.php控制器,並且該控制器有ceshi方法,既Test控制器下TestController類裏的ceshi()方法
--ceshi方法中有 $this->show(); 訪問該控制器對應的視圖文件夾下該方法對應的視圖頁面
--那麽Home/View文件夾下創建Test文件夾,並創建視圖頁面ceshi.html
--訪問該頁面的方法為: localhost/i/tp/index.php/Home/Test/ceshi Home模塊下Test( TestController.class,php )控制器的TestController類下的ceshi()方法
<?php namespace Home\Controller; use Think\Controller; class TestController extends Controller { public function ceshi(){ $this->show(); } }
三 註冊變量到視圖頁面
①-- 在TP框架中的方法 :
-- 控制器的方法裏註冊變量 $this->assign(" 變量名稱 "," 變量的值 ");
如: $this->assign(‘uname‘,‘張三‘);
-- 視圖頁面訪問的方法 {$變量名稱} 大括號裏面寫$符號與變量名稱,不能有空格換行等
如: {$uname}
②-- 如果註冊的變量是數組, 獲取方法: {$arr[‘0‘]} 或 {$arr[‘id‘]}
③--循環輸出
--<foreach>標簽,TP特有的循環輸出
--name的值是變量名稱( 與方法中的變量名保持一致 ),item的值是獲取到的數組的值( 自定義命名 )
--註冊一個數組
public function test(){ $arr=array( array("code"=>"n001","name"=>"漢族"), array("code"=>"n002","name"=>"天族") ); $this->assign("nation",$arr); $this->show(); }
-- 前端獲取
<select> <foreach name="nation" item="v"> <option value=‘{$v.code}‘>{$v.name}</option> </foreach> </select>
④--if判斷
--<if>標簽與else標簽,TP特有的前端判斷
--<if>標簽中condition屬性的值是判斷條件,
--判斷條件中變量名稱需有$符前綴, 例如一個註冊變量名稱是id,值是0, 那麽判斷id是應 condition=" $id==0 "
例如在test方法中註冊變量 $this->assign("dc",0);
前端頁面判斷並輸出,因為dc不等於1所以頁面顯示李四
<if condition="$dc==1"> <b>張三</b> <else /> <i>李四</i> </if>
⑤-- <literal>標簽為照原樣顯示,<if>標簽<foreach>標簽寫在該標簽內不在執行判斷與循環
四 獲取表單數據
①-- 通過get_defined_constants(true); 方法獲取方法的路徑,返回一個二維關聯數組
--路徑在‘user‘中 因此 var_dump(get_defined_constants(true)[‘user‘]);
-- __ROOT__ TP框架的根路徑
-- __SELF__ 自身方法的路徑
-- __APP__ 入口目錄
-- __MODULE__ 當前模塊路徑
-- __CONTROLLER__ 到控制器的目錄
-- __ACTION__ 到操作方法的目錄
②-- 前端創建視圖頁面sub.html 並寫入form表單,提交地址為到此頁面的操作方法目錄__ACTION__
<form action="__ACTION__" method="post"> <input type="text" name="uid"> <input type="password" name="pwd"> <input type="submit" value="登錄"> </form>
③-- 在Test控制器中些sub方法獲取數據
public function sub(){ if(empty($_POST)){ $this->show(); //如果POST是空的繼續顯示提交頁面 }else{ echo $_POST[‘uid‘]; //如果有POST則對其操作,或輸出或存入數據庫等等 } var_dump(get_defined_constants(true)[‘user‘]); }
TinkPHP框架學習-02控制器基本操作