thinkPHP5框架閉包函數(shù)與子查詢(xún)傳參用法示例
本文實(shí)例講述了thinkPHP5框架閉包函數(shù)用法。分享給大家供大家參考,具體如下:
普通使用
舉個(gè)栗子:
$this->where(function ($query) { $query->where('id', 1)->whereor('id', 2); })->find();
上述栗子就是一個(gè)簡(jiǎn)單的where
查詢(xún)的閉包函數(shù)使用,使用匿名函數(shù)添加復(fù)雜條件查詢(xún),
最后執(zhí)行的sql是:
// 加入上述代碼寫(xiě)在user模型里,則執(zhí)行的sql為: select * from user where (id = 1 or id = 2);
復(fù)雜用法
其實(shí)閉包函數(shù)也不會(huì)復(fù)雜到哪去,無(wú)非帶參數(shù)不帶參數(shù)而已。舉個(gè)栗子(上面的栗子加強(qiáng)下)
$this->where(function ($query) use ($id1, $id2) { $query->where('id', $id1)->whereor('id', $id2); })->find();
這也就是thinkphp 5 里怎么使用閉包查詢(xún)傳參數(shù)的方法,使用use
傳入?yún)?shù)。
tp5閉包子查詢(xún)傳參方法
在channel表中查詢(xún)status,channel_id,channel_name,account_level這些字段,且這些字段的channel_id不在adv_id為$id的表adv_channel_rule中:
$model = new Model(); $id = $req_models["id"];
tp5閉包子查詢(xún)傳參:
$res = $model->table('channel') ->field(['status','channel_id','channel_name','account_level']) ->where('channel_id','NOT IN',function($query) use ($id) { $query->table('adv_channel_rule')->where("adv_id",$id)->field('channel_id'); })->select();
mysql的原生寫(xiě)法:
$res = 'SELECT adv_id,adv_name,status,account_level FROM `channel` WHERE channel_id NOT IN (SELECT channel_id FROM adv_channel_rule WHERE adv_id='.$id.')'; $result = $model->query($res);
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《ThinkPHP入門(mén)教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門(mén)教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門(mén)教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
- ThinkPHP5查詢(xún)數(shù)據(jù)及處理結(jié)果的方法小結(jié)
- thinkPHP5實(shí)現(xiàn)的查詢(xún)數(shù)據(jù)庫(kù)并返回json數(shù)據(jù)實(shí)例
- tp5(thinkPHP5)框架數(shù)據(jù)庫(kù)Db增刪改查常見(jiàn)操作總結(jié)
- tp5(thinkPHP5)框架實(shí)現(xiàn)多數(shù)據(jù)庫(kù)查詢(xún)的方法
- ThinkPHP5聯(lián)合(關(guān)聯(lián))查詢(xún)、多條件查詢(xún)與聚合查詢(xún)實(shí)例詳解
- tp5(thinkPHP5框架)時(shí)間查詢(xún)操作實(shí)例分析
- ThinkPHP5框架緩存查詢(xún)操作分析
- thinkPHP5框架實(shí)現(xiàn)多數(shù)據(jù)庫(kù)連接,跨數(shù)據(jù)連接查詢(xún)操作示例
- Thinkphp5.0框架的Db操作實(shí)例分析【連接、增刪改查、鏈?zhǔn)讲僮鞯取?/a>
- ThinkPHP5.1框架數(shù)據(jù)庫(kù)鏈接和增刪改查操作示例
- tp5.1 框架join方法用法實(shí)例分析
相關(guān)文章
Yii2框架數(shù)據(jù)庫(kù)簡(jiǎn)單的增刪改查語(yǔ)法小結(jié)
這篇文章主要介紹了Yii2框架數(shù)據(jù)庫(kù)簡(jiǎn)單的增刪改查語(yǔ)法小結(jié),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08ThinkPHP打開(kāi)驗(yàn)證碼頁(yè)面顯示亂碼的解決方法
這篇文章主要介紹了ThinkPHP打開(kāi)驗(yàn)證碼頁(yè)面顯示亂碼的解決方法,通過(guò)頭部添加自定義文件驗(yàn)證目錄并過(guò)濾BOM頭來(lái)實(shí)現(xiàn)該功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12PHP 中提示undefined index如何解決(多種方法)
這篇文章主要介紹了PHP 中提示undefined index如何解決(多種方法)的相關(guān)資料,需要的朋友可以參考下2016-03-03php 陰歷-農(nóng)歷-轉(zhuǎn)換類(lèi)代碼
網(wǎng)上GOOGLE到的,非常不錯(cuò) 來(lái)源不祥 非本人所寫(xiě),需要的朋友可以參考下。2012-01-01-
最新評(píng)論