thinkPHP5框架閉包函式與子查詢傳參用法示例

2021-10-10 04:27:06 字數 1345 閱讀 5391

這篇文章主要介紹了thinkphp5框架閉包函式與子查詢傳參用法,結合例項形式分析了thinkphp5閉包查詢與引數傳遞相關操作技巧,需要的朋友可以參考下

普通使用

舉個栗子:

$this->where(function ($query)

)->find();

上述栗子就是乙個簡單的where查詢的閉包函式使用,使用匿名函式新增複雜條件查詢,

最後執行的sql是:

// 加入上述**寫在user模型裡,則執行的sql為:

select * from user where (id = 1 or id = 2);

複雜用法

其實閉包函式也不會複雜到哪去,無非帶引數不帶引數而已。舉個栗子(上面的栗子加強下)

$this->where(function ($query) use ($id1, $id2)

)->find();

這也就是thinkphp 5 裡怎麼使用閉包查詢傳引數的方法,使用use傳入引數。

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

**:

為什麼使用thinkphp5框架

1 運算元據庫簡單 1 模型 將增刪改查簡化,類似運算元組的方式運算元據庫和字段 2 連線資料庫簡化 不使用框架的時候,我在每個需要運算元據庫的php檔案,都引入了一次連線資料庫的檔案,在框架裡不需要 2 路由 沒使用框架的時候,頁面很單一,頁面的內容重新整理,其實是通過echo不同的內容實現,引數...

今天學習thinkphp5框架總結

小菜鳥不斷的學習和提公升自己,今天學了mvc模式和thinkphp5中的相關操作,雖然還是很笨拙而且一邊實習一邊學習,時間很倉促,所以得快速的吸收有效率的。學了namespace 相關路徑的找法 總控 模組 分控 相關操作 頁面 還有config配置檔案的相關調整 另外就是初步懂得fetch的用法和...

thinkphp5框架build自動建立目錄

第一種方法 最簡單就是直接把中低端 放到public index.php下 在瀏覽器中直接localhost就ok了,目錄自動生成 第二種 就是命令生成,因為本人用的開發工具是phpstrom,自帶命令列,只要執行 php think build 目錄就自動建立成功了,如圖 目錄可以自己建立順便給大...