2017-09-23 42 views
0

我有兩個表之一的主表爲提供商具有帶有附加字段,其是用戶特定的映射ID提供商用戶另一個的映射表。Laravel無法用戶id傳遞到模型查詢

如果我有下面的代碼,我會得到值作爲回報。

return $mobileProviders=Provider::whereHas('providerUser', function ($query) { 
      $query->where('user_id',1); 
     })->where('provider_type',1)->get(); 

現在我通過驗證$用戶id,當我回到$用戶id我得到這同上,但我無法得到的結果並不返回任何值。

$userId=Auth::user()->id; 
return $mobileProviders=Provider::whereHas('providerUser', function ($query) { 
      $query->where('user_id',$userId); 
     })->where('provider_type',1)->get(); 

回答

3

只需添加一個use ($userId)function ($query)。如下所示:

$userId=Auth::user()->id; 

return $mobileProviders = Provider::whereHas('providerUser', function ($query) use ($userId) { 
      $query->where('user_id',$userId); 
     })->where('provider_type',1)->get(); 

這會將變量傳遞給閉包。