1. 程式人生 > >TinkPHP框架學習-02控制器基本操作

TinkPHP框架學習-02控制器基本操作

ffffff 換行 lin type emp 定義 select cor 新建

                  1-----創建控制器

                  2-----訪問視圖頁面

                  3-----註冊變量到視圖頁面

                  4-----獲取表單數據

一 在Home模塊下創建控制器

    舉例:  目錄tp/Application/Home/Controller下創建TestController.class.php

         訪問該控制器 localhost/i/tp/Home/Test/操作方法

    

<?php
namespace Home\Controller;
use
Think\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控制器基本操作