国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

thinkPHP5框架閉包函數(shù)與子查詢傳參用法示例

2024-05-05 00:04:48
字體:
供稿:網(wǎng)友

本文實(shí)例講述了thinkPHP5框架閉包函數(shù)用法。分享給大家供大家參考,具體如下:

普通使用

舉個(gè)栗子:

$this->where(function ($query){ $query->where('id', 1)->whereor('id', 2);})->find();

上述栗子就是一個(gè)簡(jiǎn)單的where查詢的閉包函數(shù)使用,使用匿名函數(shù)添加復(fù)雜條件查詢,

最后執(zhí)行的sql是:

// 加入上述代碼寫在user模型里,則執(zhí)行的sql為:select * from user where (id = 1 or id = 2);

復(fù)雜用法

其實(shí)閉包函數(shù)也不會(huì)復(fù)雜到哪去,無非帶參數(shù)不帶參數(shù)而已。舉個(gè)栗子(上面的栗子加強(qiáng)下)

$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);

希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到PHP教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 托克逊县| 胶州市| 驻马店市| 巩留县| 隆林| 嘉义市| 福安市| 安丘市| 旺苍县| 普洱| 中超| 宁武县| 金坛市| 黄冈市| 丹阳市| 钦州市| 南涧| 塔河县| 安新县| 溧阳市| 祁连县| 吴江市| 喀什市| 时尚| 蒲城县| 自贡市| 朝阳市| 德钦县| 安义县| 石首市| 长岛县| 杨浦区| 习水县| 上饶市| 巢湖市| 永川市| 天台县| 图木舒克市| 宁都县| 咸丰县| 加查县|