thinkPHP5框架閉包函數(shù)與子查詢傳參用法示例
本文實例講述了thinkPHP5框架閉包函數(shù)用法。分享給大家供大家參考,具體如下:
普通使用
舉個栗子:
$this->where(function ($query)
{
$query->where('id', 1)->whereor('id', 2);
})->find();
上述栗子就是一個簡單的where查詢的閉包函數(shù)使用,使用匿名函數(shù)添加復(fù)雜條件查詢,
最后執(zhí)行的sql是:
// 加入上述代碼寫在user模型里,則執(zhí)行的sql為: select * from user where (id = 1 or id = 2);
復(fù)雜用法
其實閉包函數(shù)也不會復(fù)雜到哪去,無非帶參數(shù)不帶參數(shù)而已。舉個栗子(上面的栗子加強下)
$this->where(function ($query) use ($id1, $id2)
{
$query->where('id', $id1)->whereor('id', $id2);
})->find();
這也就是thinkphp 5 里怎么使用閉包查詢傳參數(shù)的方法,使用use 傳入?yún)?shù)。
tp5閉包子查詢傳參方法
在channel表中查詢status,channel_id,channel_name,account_level這些字段,且這些字段的channel_id不在adv_id為$id的表adv_channel_rule中:
$model = new Model(); $id = $req_models["id"];
tp5閉包子查詢傳參:
$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的原生寫法:
$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)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對大家基于ThinkPHP框架的PHP程序設(shè)計有所幫助。
- ThinkPHP5查詢數(shù)據(jù)及處理結(jié)果的方法小結(jié)
- thinkPHP5實現(xiàn)的查詢數(shù)據(jù)庫并返回json數(shù)據(jù)實例
- tp5(thinkPHP5)框架數(shù)據(jù)庫Db增刪改查常見操作總結(jié)
- tp5(thinkPHP5)框架實現(xiàn)多數(shù)據(jù)庫查詢的方法
- ThinkPHP5聯(lián)合(關(guān)聯(lián))查詢、多條件查詢與聚合查詢實例詳解
- tp5(thinkPHP5框架)時間查詢操作實例分析
- ThinkPHP5框架緩存查詢操作分析
- thinkPHP5框架實現(xiàn)多數(shù)據(jù)庫連接,跨數(shù)據(jù)連接查詢操作示例
- Thinkphp5.0框架的Db操作實例分析【連接、增刪改查、鏈?zhǔn)讲僮鞯取?/a>
- ThinkPHP5.1框架數(shù)據(jù)庫鏈接和增刪改查操作示例
- tp5.1 框架join方法用法實例分析
相關(guān)文章
遍歷echsop的region表形成緩存的程序?qū)嵗a
下面小編就為大家?guī)硪黄闅vechsop的region表形成緩存的程序?qū)嵗a。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11
PHP配置把錯誤日志以郵件方式發(fā)送方法(Windows系統(tǒng))
這篇文章主要介紹了PHP配置把錯誤日志以郵件方式發(fā)送方法(Windows系統(tǒng)),本文給出了配置示例和使用例子,需要的朋友可以參考下2015-06-06
PHP模板引擎Smarty之配置文件在模板變量中的使用方法示例
這篇文章主要介紹了PHP模板引擎Smarty之配置文件在模板變量中的使用方法,結(jié)合實例形式分析了配置文件變量的具體使用步驟與相關(guān)技巧,需要的朋友可以參考下2016-04-04
Symfony2使用第三方庫Upload制作圖片上傳實例詳解
這篇文章主要介紹了Symfony2使用第三方庫Upload制作圖片上傳的方法,結(jié)合實例形式較為詳細的分析了Symfony2使用第三方庫Upload的具體步驟與相關(guān)使用技巧,需要的朋友可以參考下2016-02-02
新浪微博API開發(fā)簡介之用戶授權(quán)(PHP基礎(chǔ)篇)
己在開發(fā)和學(xué)習(xí)的過程中,感覺雖然沒有太大難度,但還是有一些問題是需要我們注意的,今天就我在開發(fā)和學(xué)習(xí)的過程中,簡單的對利用PHP進行新浪微博API開發(fā)的內(nèi)容進行一個整理和說明2011-09-09
thinkphp框架表單數(shù)組實現(xiàn)圖片批量上傳功能示例
這篇文章主要介紹了thinkphp框架表單數(shù)組實現(xiàn)圖片批量上傳功能,結(jié)合實例形式分析了js前端圖片上傳與后臺thinkPHP文件處理相關(guān)操作技巧,需要的朋友可以參考下2020-04-04

