最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2018年08月02日 14:51:23   作者:菜鳥沒翅膀  
這篇文章主要介紹了thinkPHP5框架閉包函數(shù)與子查詢傳參用法,結(jié)合實(shí)例形式分析了thinkPHP5閉包查詢與參數(shù)傳遞相關(guān)操作技巧,需要的朋友可以參考下

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

普通使用

舉個(gè)栗子:

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

上述栗子就是一個(gè)簡單的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);

更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。

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

相關(guān)文章

最新評論

民勤县| 札达县| 仙桃市| 孝感市| 泸州市| 竹溪县| 玛曲县| 南通市| 海宁市| 民县| 安化县| 鹤岗市| 固始县| 三穗县| 岳普湖县| 红河县| 韩城市| 张家口市| 云和县| 普兰店市| 黄冈市| 奈曼旗| 买车| 正定县| 白沙| 江孜县| 鹤壁市| 青冈县| 基隆市| 沙湾县| 马山县| 黄大仙区| 南宁市| 邯郸市| 伽师县| 桐乡市| 抚松县| 甘肃省| 长汀县| 洛南县| 博野县|