【问题标题】:laravel DB::raw SELECT WITH WHERE CLAUSElaravel DB::raw SELECT WITH WHERE CLAUSE
【发布时间】:2017-11-17 14:25:51
【问题描述】:

我有一个用户可能有很多行的订单表,所以我想获取当前用户最新订单的状态

我想获取用户 id 等于当前 auth 用户 id 的最大 id 行的状态,

表结构:

order(id,user_id,item_id,....,status)

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    我认为你应该试试这个:

    $currentUserId = Auth::user()->id;
    
    DB::table('order')->select('status')->where('user_id',$currentUserId)->orderBy('created_at','desc')->get();
    

    希望这对你有用

    【讨论】:

      【解决方案2】:

      试试这个。

      $userId = Auth::user()->id;
      DB::table('order')->orderBy('created_at','desc')->select('status')->where('user_id',$userId)->get();
      

      【讨论】:

      • 这行得通,但是当我在视图中尝试 {{ $status }} 时,它给了我一个错误,当我 print_r 它给我的状态时(stdClass Object([status] => 3)我想要只有数字
      • 你是如何传递数据来查看的?
      • ->with('status',$status)
      • 我没有收到任何错误,只是页面崩溃了,我猜他们停止在网站上进行调试
      • 尝试使用first() 代替get() 并在视图中使用{{ $status }}
      【解决方案3】:

      SQL 查询

      SELECT o.status FROM order AS o WHERE o.user_id=? ORDER BY o.id DESC LIMIT 0,1;

      Laravel

      $user_id = 123;
      DB::table('order')
          ->select(DB::raw('status'))
          ->where('user_id', '=', $user_id)
          ->orderby('id', 'DESC')
          ->first();
      

      【讨论】:

        猜你喜欢
        • 2018-07-06
        • 1970-01-01
        • 2018-10-24
        • 2015-10-27
        • 2021-02-08
        • 2023-03-24
        • 1970-01-01
        • 2020-06-10
        • 2019-01-10
        相关资源
        最近更新 更多