91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-07-17 00:36:04 來源:網絡 閱讀:595 作者:帥白123 欄目:web開發

thinkphp作為國內現階段最成熟的框架;沒有之一;

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

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

for example這些:

getBy

getField

getFieldBy

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

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

咱先虛擬一張表出來

+----+--------+--------------+
| id | name   | avatar              |
+----+--------+--------------+
|  1 | 白俊遙  | bjy.jpg             |
|  2 | 帥白     | shuaibai.jpg     |
|  3 | test      | shuaibai.jpg     |
+--+-------+----------------+


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

常規情況是這樣寫的;

$data=M('Test')->where(array('name'=>'白俊遙'))->find()

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

$data=M('Test')->getByName('白俊遙');//通過name字段獲取整條數據
$data=M('Test')->getByAvatar('bjy.jpg')//同理可得如果想通過avatar獲取整條數據就是這樣寫了
$data=M('Test')->getById(1);//聰明的童鞋立即就想到了如果要通過id那不就是這樣?對;
                            //但是如果id是主鍵的話;這里有個更好用的方法
$data=M('Test')->find(1);//得到的結果和M('Test')->getById(1);是一樣的
打印值:
Array
(
    [id] => 1
    [name] => 白俊遙
    [avatar] => bjy.jpg
)

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

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

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

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

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

常規情況是這樣寫的;

$data=M('Test')->field('avatar')->where(array('name'=>'白俊遙'))->find();
$avatar=$data['avatar'];

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

$avatar=M('Test')->where(array('name'=>'白俊遙'))->getField('avatar');

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

$avatar=M('Test')->getFieldByName('白俊遙','avatar');
打印$avatar:
bjy.jpg

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

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

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

常規是這樣寫的:

$data=M('Test')->field('name')->where(array('avatar'=>'shuaibai.jpg'))->select();
$name_array=array_column($data, 'name');

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

$avatar_array=M('Test')->where(array('avatar'=>'shuaibai.jpg'))->getField('name',true);
打印$avatar_array:
Array
(
    [0] => 帥白
    [1] => test
)

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

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

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

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

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

示例如下:

$User = M("User"); // 實例化User對象
// 獲取ID為3的用戶的昵稱 $nickname = $User->where('id=3')->getField('nickname');

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

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

$User->getField('id',true); // 獲取id數組
//返回數據格式如array(1,2,3,4,5)一維數組,其中value就是id列的每行的值

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

$User = M("User"); // 實例化User對象
// 獲取所有用戶的ID和昵稱列表 $list = $User->getField('id,nickname');
//兩個字段的情況下返回的是array(`id`=>`nickname`)的關聯數組,
以id的值為key,nickname字段值為value

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

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

$list = $User->getField('id,nickname,email');
//返回的數組格式是array(`id`=>array(`id`=>value,`nickname`=>value,`email`=>value))
是一個二維數組,key還是id字段的值,但value是整行的array數組,
類似于select()方法的結果遍歷將id的值設為數組key

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

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

$list = $User->getField('id,nickname,email',':');

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

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

$this->getField('id,name',5); // 限制返回5條記錄
$this->getField('id',3); // 獲取id數組 限制3條記錄

可以配合使用order方法使用。更多的查詢方法可以參考查詢語言章節。

認真寫一篇博客真心不容易;寫著寫著就熬到了凌晨1點了;但愿能讓童鞋們少走一些彎路;也算不枉這么辛苦的碼字;

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


本文為白俊遙原創文章,轉載無需和我聯系,但請注明來自白俊遙博客http://www.baijunyao.com                        


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东明县| 辽宁省| 和静县| 邢台县| 武威市| 祁阳县| 航空| 辉县市| 隆尧县| 驻马店市| 同德县| 垦利县| 彭山县| 新平| 东兴市| 沐川县| 永寿县| 山阳县| 汽车| 石泉县| 青河县| 越西县| 汤阴县| 资溪县| 泰来县| 肇源县| 大港区| 乡城县| 九江县| 民丰县| 新兴县| 大洼县| 洪雅县| 北安市| 天等县| 运城市| 宁波市| 云安县| 高尔夫| 阿拉善左旗| 海南省|