ThinkPhp框架 父類及表單驗證

2022-03-30 17:11:55 字數 3776 閱讀 7568

這個知識點,就可以通過「登入」和「註冊」的頁面來學習這個知識點了

首先先做乙個「登入」功能

一、登入功能(父類)

(1)登入的控制器

在我的控制器資料夾中新建乙個登陸控制器

我的路徑是這樣的:

然後裡面要書寫正確才可以,其中要有命名空間,還有繼承父類的控制器

<?php 

namespace home\controller;

use think\controller;

class logincontroller extends controller

else

}}

(2)編寫登入的頁面 

我的這個頁面我放在了

這個登入頁面都是寫過很多遍了,就不解釋了,這裡用的還是表單元素

(3)補充php頁面中的否則語句

else

else

}

執行看下結果:

1)輸入賬號和密碼,密碼是錯誤的時

2)輸入賬號和密碼,密碼是正確的時

3)時間已過,跳轉到首頁面

這樣有個bug就是,這個首頁即使沒有登入也可以檢視這個頁面,所以我們要加乙個條件,來判斷這個沒有登入時,不能走這個頁面,也就是返回登入頁面,但是每個方法都要判斷就會顯得很繁瑣,又不能直接修改原控制器檔案,所以,可以在他們之間在建乙個控制器檔案,作為他們的橋梁

(4)搭建的他們之間的橋梁

(4.1)新建的乙個控制器類檔案

<?php 

namespace home\controller;

use think\controller;

class fucontroller extends controller

}}

(4.2)這樣之後,將除了login的控制器外,其他的都要修改成這橋梁控制器類

namespace home\controller;

use home\controller\fucontroller; //使用橋梁的控制器類

class homecontroller extends fucontroller //繼承的就不是原類了,而是寫的控制器類檔案

執行之後檢視效果,直接登入首頁的頁面,會出現下面的頁面

二、註冊功能(表單驗證)

自動驗證是thinkphp模型層提供的一種資料驗證方法,可以在使用create建立資料物件的時候自動進行資料驗證。

其中有兩種驗證:靜態驗證和動態驗證

(1)靜態驗證

注意:靜態定義方式因為必須定義模型類,所以只能用d函式例項化模型

1.我們可以在indexcontroller.class.php類檔案中新建乙個方法

public function zhuce()

else

}

2.在view檔案中新建乙個index資料夾,新建註冊的顯示頁面

注意:如果使用收集表單元素,裡面的name要和資料庫中的保持一致

看下執行效果

3.新增表單驗證

(1)靜態驗證

注意:在模型類裡面通過$_validate屬性定義驗證規則。 

這裡要新建乙個模板檔案usermodel.class,記得要在model資料夾中

<?php 

namespace home\model;

use think\model;

class usermodel extends model

再寫驗證的時候要記住一下幾點:

(1)驗證字段 (必須)

需要驗證的表單字段名稱,這個欄位不一定是資料庫字段,也可以是表單的一些輔助字段,例如確認密碼和驗證碼等等。有個別驗證規則和字段無關的情況下,驗證欄位是可以隨意設定的,例如expire有效期規則是和表單字段無關的。如果定義了字段對映的話,這裡的驗證欄位名稱應該是實際的資料表字段而不是表單字段。

(2)驗證規則 (必須)

要進行驗證的規則,需要結合附加規則,如果在使用正則驗證的附加規則情況下,系統還內建了一些常用正則驗證的規則,可以直接作為驗證規則使用,包括:require 字段必須、email 郵箱、url url位址、currency 貨幣、number 數字。

(3)提示資訊 (必須)

用於驗證失敗後的提示資訊定義

(4)驗證條件 (可選)

包含下面幾種情況:

(5)附加規則 (可選)

配合驗證規則使用,包括下面一些規則: 

(6)驗證時間(可選)

這裡的驗證時間需要注意,並非只有這三種情況,你可以根據業務需要增加其他的驗證時間。

4.我們可以讓上面的註冊頁面再一些時候顯示驗證資訊

4.1使用者名為空時,提示資訊

protected $_validate = array(     

array('uid','require','使用者名稱不能為空!'), //判斷使用者名稱是不是空的

);

4.2怎麼使用這個驗證資訊,我們要在indexcontroller.class.php類檔案中編寫

public function zhuce()

else

else}}

4.3執行可以看下結果

這是靜態驗證,不能出現在文字框的後面,這樣可以用動態驗證,其他的條件可以根據注意的那幾條自己進行練習

(2)動態驗證

注意:使用模型類的validate方法動態建立自動驗證規則。 

總的來說就是要用ajax來寫,給想要顯示驗證的上新增乙個id,便於傳值;而且也要引入jquery檔案

主體中的內容

使用者名稱:

js的編寫

方法中的寫法(完整的)

public function yanzheng()

else

else} }

最後的顯示頁面中的內容

success: function(data)

else

}

執行看下提示結果

父級和表單驗證就是這樣的,熟悉他的使用規則就可以了

ThinkPHP框架表單驗證

thinkphp框架的表單驗證分為靜態驗證和動態驗證。靜態驗證 首先在model檔案下建立乙個表的模型,驗證哪個表就鍵哪個表的模型。如驗證users表,則建立textmodel.class.php的檔案。定義乙個textmodel類,繼承父類model 在類裡面新增二維陣列,陣列裡存放驗證條件。條件...

Form表單 浮動框架及CSS

form表單 表單的核心是資料 value 設定其中的初始文字 size 設定其輸入框的寬度 單位是 字元寬 其中能放置該數量的字元 maxlength 設定該輸入框最多能輸入的字元個數 readonly 這是乙個 無值 屬性,表示 唯讀 則寫法是 readonly readonly disable...

tp框架表單驗證 及ajax

之前的表單驗證都是用js寫的,這裡也可以使用tp框架的驗證。但是兩者比較而言還是js驗證比較好,因為tp框架驗證會執行後台 這樣執行速度和效率就會下降。自動驗證是thinkphp模型層提供的一種資料驗證方法,可以在使用create建立資料物件的時候自動進行資料驗證。驗證的 要寫在模型層即model裡...