TP5分頁函數paginate中的each()傳參


在使用each()時,each()里面只能使用局部變量,當使用外部變量時會報未定義變量的錯誤,但是有時候我們還必須使用外部變量,就需要想是時作用域的問題,但是如果使用 global 全局雖然不報錯,但是打印出來是 null ,所以最終使用 use 解決, 如果在函數中需要修改變量的值,會發現在函數內,變量的值改變了,但是函數外面的變量值還是沒變,如果想使函數內外的變量的值同時改變,在 use 前面加 “& ”即可。

$list = Db::view('drugall')
            ->view('drug_class','id drugclass_id','drugall.drugclass_id = drug_class.id')
            ->where($map)
            ->paginate(15,false,['query'=>request()->param()])
            ->each(function ($item,$key) use(&$userId)
            {
                $item['time'] = Db::view('drug','createtime')
                    ->view('draft_user','draftkind','drug.id = draft_user.draftId')
                    ->where(['drug.drugid'=>$item['id'],'draft_user.userid'=>$userId])
                    ->select();
                return $item;
            });
        return $list;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM