1. 程式人生 > >淺談ThinkPHP(三)

淺談ThinkPHP(三)

實現商品的新增

1、在add.html頁面中更改表單元素的名稱

 

Goods控制器的add()方法中獲取商品分類

 

在add.html中迴圈獲取

 

2、設定提交的位置

 

3、新增商品程式碼參見GoodsController.class.php

方法一:

 

$this->redirect();也是跳轉

方法二(用create建立陣列):

create()的作用:

1、將表單元素的值和資料庫中的欄位一一匹配。

2、講資料庫中沒有的欄位在陣列中去除。

 

PHP中新增的語法如下:

 

success()和error()方法是thinkphp自帶的執行成功和失敗的方法,可以用此方法來實現跳轉。

方法三:

 

I()函式

I()用來獲取get、post、session\cookie等等的資料。

語法:I('變數的型別.變數的名稱',[預設值],[過濾方法])

變數型別

描述

Get

獲取get提交的引數

Post

獲取POST提交的引數

param

自動判斷是get還是post

request

獲取request提交的資料

Session

獲取會話的資料

Cookie

獲取cookie資料

server

類似是$_SERVER[];

globals

獲取$GLOBALS引數

path

獲取pathinfo模式的url引數

用法:

描述

例題

獲取get提交的name變數

I('get.name')

獲取get提交的name變數並指定預設值

I('get.name','李白')

獲取值後並呼叫函式處理資料

I('get.name',' ', mysql_real_escape_string,trim);

獲取所有get提交的資料

I('get.')

此配置檔案是預設的I的過濾引數

 

修改商品

update.html中新增隱藏域。

 

GoodsController.class.php頁面中程式碼如下:

$this->success()中跳轉的路徑一定要用U()轉換。

 

U方法

U()用來生成URL地址,配合“'URL_MODEL'             =>  0,”配置來使用,配置的值不同,生成的URL地址就不同

 

$this->sucess(),裡面的路徑一定要用U()方法來生成URL。

刪除商品

HTML頁面

 

在控制器中程式碼如下:

 

驗證碼

TP框架中自帶了驗證碼類

位置:Think/verify.class.php

 

在LoginController控制器中建立生存驗證碼的方法

 

login.html登陸模板中

 

在LoginController控制器中判斷驗證碼是否正確並且判斷登陸是否成功

 

檔案上傳

用到的知識點:

1、檔案上傳的時候,要設定表單的enctype屬性

 

2、$_FILE[名字][]用來接收檔案的資訊

第二維的欄位:

         name

         size

         error

         type

         tmp_name

3、move_uploaded_file(臨時檔案,目標檔案)

ThinkPHP自帶了檔案上傳的類。位置:Think/Upload.class.php

 

生成縮圖

縮圖類存放的位置 Think\Image.class.php

自定義工具類

在application資料夾下新建一個components資料夾,此資料夾中存放自定義的工具類。

在components資料夾下新建一個EmailTool.class.php檔案

 

在控制器呼叫

 

TP中的session和cookie

session('name')                 獲取名字是name的會話

session('name','李白');   將'李白'付給name會話

session('name',null);        清空name的會話

session(null);                      清空所有會話

------------------------------------

cookie('name')                   獲取名字是name的cookie

cookie ('name','李白');    將'李白'付給name cookie

cookie ('name',null);         清空name的cookie

cookie (null);                       清空所有cookie

名稱空間

當開發大型專案的時候,可以會需要成千上萬的檔案

面向物件通過名稱空間來解決這個問題的。

PHP名稱空間是PHP5.3以後才出現的。

名稱空間中可以出現:類,函式,常量

只有const定義的常量名稱空間才有效。名稱空間的名字必須符合PHP命名的規則。

名稱空間是邏輯上的定義,邏輯的名稱 不是物理上的路徑

Tp中為了定址的方便把名稱空間做成地址

名稱空間的宣告和使用(namespace1.php)

 

名稱空間的多級訪問一(namespace2.php)

 

名稱空間的多級訪問二(namespace3.php)

 

空間元素訪問的三種形式

1、非限定名稱訪問

         echo  getInfo()

         類似於:require  ('getinfo.php');

2、限定名稱訪問,是相對限定

         China\getInfo();

         類似於:requrie ('China/getInfo.php');

3、完全限定訪問

         \China\getInfo();

         類似於  requre ('c:\China\getinfo.php');

引用名稱空間(namespace4.php)

 

名稱空間的注意事項:

1、最頂層的\表示的是公共空間

2、namespace必須在最上面。

3、命名是虛擬的空間,不是真實存在的目錄,但是ThinkPHP的名稱空間是真實的地址路徑。

4、當前檔案中include具有名稱空間的檔案,不會改變當前檔案的名稱空間。

5、use有兩個作用 引入名稱空間  引入類