當你在使用where語句有前提條件時,好比某值爲1的時候才執行where子句,不然不執行,這個時候,laravel5.5新出了一個簡便方法when($arg,fun1[,fun2])。html
具體用法以下:當$arg爲真時,執行閉包fun1,爲假時,執行閉包fun2(可選);laravel
舉個栗子閉包
1 when($arg,function ($q){ 2 return $q->orderBy('id', 'asc'); 3 }, function ($q) use ($a){ 4 return $q->orderBy($a, 'desc'); 5 });
當$arg爲真是,執行按id升序排序,當$a爲假時,執行按$a降序排序。code
文章摘自 http://www.cnblogs.com/x-x-j/p/8397939.htmlhtm