2016-05-18 21 views
0

在我的情況,我想顯示的用戶和訂單由每個用戶完成訂單有狀態 我從輸入表格 得到$狀態這裏是我的代碼未定義的變量左加入

$orders = DB::table('user_profiles') 
     ->leftJoin('orders', function($join){ 
      $join->on('user_profiles.id','=','orders.id_user') 
       ->where('orders.status','=',$status); 
     }) 
     ->selectRaw('user_profiles.*, count(orders.id_user) as order_try_count') 
     ->groupBy('user_profiles.id') 
     ->orderBy('order_try_count',$order) 
     ->paginate(15); 

但我?得到了一個未定義變量狀態,我應該怎麼做才能解決這個問題,謝謝

回答

2

柳需要使用到的變量傳遞到封閉use建設,像這樣:

->leftJoin('orders', function($join) use ($status) { 

,而不是

->leftJoin('orders', function($join) { 

參考:anonymous functions

+0

非常好,謝謝:) – Zezen

0

你必須使用use()方法用戶變量在封閉

嘗試

->leftJoin('orders', function($join) use($status){ 
     $join->on('user_profiles.id','=','orders.id_user') 
      ->where('orders.status','=',$status); 
}) 
+0

是,謝謝沙魯:) – Zezen