ThinkPHP查詢中的魔術方法

我們在使用thinkphp開發系統的時候,有時候會用到getById('1')這個方法快速的獲取一條信息的內容,比用where(" id =1 ")->find();好用多了,也比find快速。

剛開始接觸這個方法的時候,沒有多留意它內部是怎麼實現了,感覺就像它的名字一樣,通過id來獲取信息,慢慢的就這樣接受了這個方法,直到今天,我看到一個視頻,它裏面出現getByTitle("nihao")、getByMoney('1000'),這些很相似的方法,它裏面沒有講解它們的意思。我覺得很使用也很驚訝,於是我嘗試去查找他們的實現功能程序,通過網上的一番查找和自己看開發文檔,終於明白了是怎麼一回事,怎麼樣去靈活使用這種方法。

像這種getById($id)、getByTitle($title)、getByUserName($username),以getBy+字段的方法有個專有名詞叫做魔術方法,它後面的字段可以是數據表中的任何一個字段,返回結果只能是查詢出來的第一條數據,這種方法查詢的效率很高,很好記住。

有時候我們的字段不是連起來的,例如:user_name 這樣子的字段,我們是不是這樣子寫(getByUser_name($name))呢?答案是否定的,thinkphp中不支持這樣子的方法,我們需要使用駝峯發來命名,應該寫成這樣 getByUserName($name)。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章