PHP 作為一種廣泛用於 Web 伺服器端的腳本語言,在敏捷 Web 開發方面有獨特的優勢,成功案例多、社群活躍、資源豐富,框架也非常多。 ThinkPHP 作為一款起步較早、相對成熟的國產 PHP 框架,在國內有相當的用戶量,透過《極客學院深入ThinkPHP框架視頻教程》向大家介紹 ThinkPHP 基礎知識,為後續的項目實戰做好準備。
課程播放網址:http://www.php.cn/course/322.html
該老師講課風格:
講課親切自然,樸實無華,沒有矯揉造作,也不刻意渲染,而是婁娓而談,細細道來,師生之間在一種平等、協作、和諧的氣氛下,進行默默的情感交流,將對知識的渴望和探索融於簡樸、真實的教學情景之中,學生在靜靜的思考、默默的首肯中獲得知識
本影片中較為困難是ThinkPHP 模型實作資料自動填入了:
ThinkPHP 自動填入
#ThinkPHP 內建了資料物件的自動填充功能,可以用來處理預設值、資料過濾以及其他系統寫入欄位的自動處理。
要使用自動填入功能,只需要在對應的 Model類別 裡面定義 $_auto 屬性(由多個驗證因子組成的陣列)。 $_auto 屬性是由多個填滿因子組成的數組,語法格式如下:
protected $_auto = array( array(填充字段,填充内容[,填充条件][,附加规则]) };
#自動填入範例
##使用者註冊或修改資料時,可能用到的自動填入範例:
class UserModel extends Model{ protected $_auto = array ( // 新增的时候把status字段设置为1 array('status','1'), // 对password字段在所有情况下使用md5函数处理 array('password','md5',3,'function'), // 对username字段在新增时回调getName方法 array('username','getName',1,'callback'), // 对regdate字段在新增时写入当前时间戳 array('regdate','time',1,'function'), // 对regip字段在新增时写入用户注册IP地址 array('regip','get_client_ip',1,'function'), ); }
#和自動驗證一樣,自動完成機制需要使用create 方法才能生效:
$Article = D("User"); if(!$User->create()){ // 如果创建数据对象失败(可能是验证未通过等),输出错误提示信息 exit($Article->getError()); }else{ // 继续下一步流程如将数据写入数据表 }提示與自動驗證不同的是,自動填充無效時(如調用一個不存在的函數或自動填充的字段不存在等)並不導致建立資料物件(create())失敗,只能透過偵錯或實際資料入庫來偵測自動填入是否正確有效。 動態改變自動完成規則和自動驗證一樣,可以在操作方法中使用 setProperty方法 動態的變更自動完成的規則:
$Dao = D("User"); $auto = array ( // 仅对password字段进行处理 array('password','md5',1,'function') ); $User->setProperty("_auto",$auto); if(!$User->create()){ …… }
以上是極客學院深入ThinkPHP框架影片教學的資源推薦的詳細內容。更多資訊請關注PHP中文網其他相關文章!