引用白俊遙總結thinkphp快捷查詢getBy、getField、getFieldBy用法及場景

thinkphp作為國內現階段使用比較廣泛的框架;

不得不說是有好些特別方便的方法的;

然而如果初接觸thinkphp的時候難免會被搞的有點迷茫;

for example這些:

getBy

getField

getFieldBy

我曾在相當一段時間內都用的迷迷糊糊的;

直到后來把它們總結如下:

咱先虛擬一張表出來


一:現在我們要獲取姓名為 白俊遙 的這條數據;

常規情況是這樣寫的;

如果用getby的話就可以簡化為


官方詳細文檔:http://document.thinkphp.cn/manual_3_2.html#dynamic_query

總結就是說;getBy后邊是要跟一個字段的;

我們也發現了;上面獲取到的都是整條整條的數據;

二:然而實際開發中;很多時候我們是想通過用戶名:白俊遙 找到他的頭像:bjy.jpg;

這時候就是getFieldBy的應用場景了;

常規情況是這樣寫的;

如果用getField的話可以簡化為:

如果getFieldBy那簡化的更殘忍了:


官方詳細文檔:http://document.thinkphp.cn/manual_3_2.html#dynamic_query

總結就是說getFieldBy后面跟一個字段括號內有兩個參數;第一個跟Field對應的條件;第二個是要取的字段;

三:通過頭像名 shuaibai.jpg 獲取使用這個頭像的用戶名 帥白、test

常規是這樣寫的:


如果getField的話就可以簡化為:


官方詳細文檔:http://document.thinkphp.cn/manual_3_2.html#read_data

總結就是說:getField是需要自己寫where的;傳的第一個參數就是需要獲取的字段;

如果只獲取一條值的時候不需要傳第二個參數;如果有多個的話;則第二個參數傳true;

更詳細的用法偷個懶直接復制官方文檔了:

讀取字段值其實就是獲取數據表中的某個列的多個或者單個數據,最常用的方法是getField方法。

示例如下:

默認情況下,當只有一個字段的時候,返回滿足條件的數據表中的該字段的第一行的值。

如果需要返回整個列的數據,可以用:


如果傳入多個字段的話,默認返回一個關聯數組:

這樣返回的list是一個數組,鍵名是用戶的id字段的值,鍵值是用戶的昵稱nickname。

如果傳入多個字段的名稱,例如:


返回的是一個二維數組,類似select方法的返回結果,區別的是這個二維數組的鍵名是用戶的id(準確的說是getField方法的第一個字段名)。

如果我們傳入一個字符串分隔符:

那么返回的結果就是一個數組,鍵名是用戶id,鍵值是nickname:email的輸出字符串。

getField方法還可以支持限制數量,例如:


可以配合使用order方法使用;

更多的查詢方法可以參考查詢語言章節。


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容