getField方法是ThinkPHP中用來獲取字段值的方法,區別於select和find方法,通常僅用於獲取個別字段的值。但是事實上並沒有那麼簡單,現將該方法的用法總結如下:
1.獲取某個字段值
這個是getField方法最基本的用法,用於獲取符合條件的某個字段值。
$User = M("User"); // 實例化User對象 // 獲取ID為3的用戶的昵稱 $nickname = $User->where('id=3')->getField('nickname');
返回的nickname是一個字符串結果。也就是說,即使有滿足條件的多個字段,也只會返回一個結果。
2.獲取某個字段列
如果希望返回符合要求的字段列(多個結果),可以使用:
$User = M("User"); // 實例化User對象 // 獲取status為1的用戶的昵稱列表 $nickname = $User->where('status=1')->getField('nickname',true);
第二個參數傳入了true,返回的nickname則是一個數組,包含了所有滿足條件的昵稱列表。
如果需要限制返回結果數量,可以使用:
$nickname = $User->where('status=1')->getField('nickname',8);
或者
$nickname = $User->where('status=1')->limit(8)->getField('nickname',true);
3.獲取2個字段列表
如果希望獲取滿足條件的id和昵稱列表,則可以使用:
$User = M("User"); // 實例化User對象 // 獲取status為1的用戶的昵稱列表 $nickname = $User->where('status=1')->getField('id,nickname');
如果getField方法傳入多個字段名稱的話,默認返回一個關聯數組,以第一個字段的值為索引(所以第一個字段要盡量選擇不會重復的)。
也可以限制返回數量,例如:
$nickname = $User->where('status=1')->getField('id,nickname',8);
或者
$nickname = $User->where('status=1')->limit(8)->getField('id,nickname');
4.獲取多個字段列表
如果傳入了2個以上的字段名,則返回一個二維數組(類似select方法的返回值,區別在於索引是二維數組的鍵名是第一個字段的值),例如:
$result = $User->where('status=1')->getField('id,account,nickname');
如果不希望返回二維數組,可以使用連接符,例如:
$result = $User->where('status=1')->getField('id,account,nickname',':');
那麼返回的結果則是一個索引數組,鍵名是id值,鍵值則是account:nickname連接組成的字符串。
getField方法通常還可以配合連貫操作where、limit、order等一起使用。還有一些高級的用法,包括對join表的支持和sql方法的支持等。