【问题标题】:Laravel not able to pass userId to the model queryLaravel 无法将 userId 传递给模型查询
【发布时间】:2017-09-23 17:58:23
【问题描述】:

我有两张表,一张是 providers 的主表,另一张是 provider-user 的映射表,它的映射 ID 带有用户特定的附加字段。 p>

如果我有以下代码,我会得到值作为回报。

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

现在我通过 Auth $userId 它不返回任何值当我返回 $userId 我得到 1 与上面相同但我无法得到结果.

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

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    只需在function ($query) 之后添加use ($userId)。如下:

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

    这会将变量传递给闭包。

    【讨论】:

      猜你喜欢
      • 2019-05-22
      • 2016-12-19
      • 2019-06-21
      • 2015-06-21
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多