|
我們?cè)谑褂胻hinkphp開(kāi)發(fā)的時(shí)候,有時(shí)候會(huì)用到getById('1')這個(gè)方法快速的獲取一條信息的內(nèi)容,這個(gè)方法比用where(" id =1 ")->find()好用多了,同時(shí)查詢效率也比f(wàn)ind快速。
很多人在剛開(kāi)始接觸這個(gè)方法的時(shí)候,沒(méi)有多留意它的內(nèi)部實(shí)現(xiàn)機(jī)制,僅僅認(rèn)為是通過(guò)id來(lái)獲取信息,而事實(shí)并非如此。
例如有的系統(tǒng)里存在getByTitle("nihao")、getByMoney('1000')這類方法,這些與剛才提到的getById('1')很相似,同時(shí)實(shí)現(xiàn)的功能原理也與getById('1')一樣。
其實(shí)類似這種getById($id)、getByTitle($title)、getByUserName($username)等等,以“getBy+字段”的方法有個(gè)專有名詞叫做“魔術(shù)方法”,它后面的字段可以是數(shù)據(jù)表中的任何一個(gè)字段,返回結(jié)果只能是查詢出來(lái)的第一條數(shù)據(jù),這種方法查詢的效率很高,很好記住。
有時(shí)候我們的字段不是連起來(lái)的,例如:user_name 這樣子的字段,我們是不是這樣子寫(getByUser_name($name))呢?答案是否定的,thinkphp中不支持這樣子的方法,我們需要使用駝峰法來(lái)命名,應(yīng)該寫成這樣 getByUserName($name)就可以了!
php技術(shù):ThinkPHP查詢中的魔術(shù)方法簡(jiǎn)述,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。