【问题标题】:Eloquent Get Models based on fields in related tablesEloquent 根据相关表中的字段获取模型
【发布时间】:2019-03-01 13:10:32
【问题描述】:

我有多个与我的用户模型相关的模型(例如:个人资料、地址、订单等)

我想根据每个相关表中的 update_at 字段相应地获取过去 24 小时内更新的所有用户。

如果您有一个相关表,我发现以下内容,但在我的情况下,我需要检查 3 个以上的表:

$users = User::with('orders')
            ->where('updated_at', $valueA)
            ->whereHas('orders', function($query)
                {
                    $query->where('updated_at', $valueB);
                })->get();

我希望有人可以帮助我了解如何将其应用于多个相关表上的多个 where 子句 n=。

【问题讨论】:

    标签: laravel laravel-5 eloquent


    【解决方案1】:

    试试下面的代码,

    $users = User::with(['profiles', 'addresses', 'orders'])
            ->whereDate('updated_at','>', $yesterdayDate)
            ->orWhereHas('orders', function($query) use ($yesterdayDate){
                 $query->whereDate('updated_at','>', $yesterdayDate);
            })->orWhereHas('addresses', function($query) use ($yesterdayDate) {
                 $query->where('updated_at','>', $yesterdayDate);
            })->orWhereHas('profiles', function($query) use ($yesterdayDate){
                 $query->where('updated_at','>', $yesterdayDate);
            })->get();
    

    【讨论】:

      【解决方案2】:

      如果您与所有模型(如订单、个人资料、地址等)有直接关系,那么您可以试试这个。

               $valueA = $time // whatever time you want
               $users = User::
               where('updated_at', $valueA)
              ->whereHas('orders', function($query) use ($valueA)
                  {
                      $query->where('updated_at', $valueA);
                  })
                with('orders')
                ->whereHas('profiles', function($query) use ($valueA)
                  {
                      $query->where('updated_at', $valueA);
                  })
                with('profiles')
               ->whereHas('addresses', function($query) use ($valueA)
                  {
                      $query->where('updated_at', $valueA);
                  })
                with('addresses')
                ->get();
      

      谢谢。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        • 2014-01-20
        • 1970-01-01
        • 1970-01-01
        • 2020-07-28
        相关资源
        最近更新 更多