PHP框架 Laravel Eloquent ORM where 多条件查询

 $goodsShow = Goods::where('product_id','=',$id)->first();

这个是 查询一个条件呢 我想在where 里面 在增加 几个条件 可以吗

有大神指点一下吗

阅读 76.9k
评论
    8 个回答

    $goodsShow = Goods::where([product_id'=>$id,'name'=>$name])->first();

      多条件的话可以这样写:

      $goodsShow = Goods::where('cate_id','=',$cate_id)
          ->where(function($query){
              $query->where('status','<','61')
                  ->orWhere(function($query){
                      $query->where('status', '91');
                  });
          })->first();

      这一段其实执行的就是where cate_id = $cate_id AND (status < 61 OR status = 91)

        多条可以使用苏生不惑的方法
        其实单个条件可以写成

        $goodsShow = Goods::where('product_id', $id)->first();
        

        方便一些。

          可以传递数组嘛,就像thinkphp一样的

            • 5
            • 新人请关照
            $sql = "select * from user where uid = pid or uid = cid";
            $re = M('user')->query($sql);
              • 1
              • 新人请关照
              $goodsShow = Goods::where([
              'a' => '1',
              'b' => '2',
              ])->first();
              

              也可以定义一个数组,然后以参数的形式传给where

              $array = [
                '' => '',
                '' => '',
              ];
              $goodsShow = Goods::where($array)->first();
              

              也可以用

              orWhere()
                • 4
                • 新人请关照

                ..........

                该答案已被忽略,原因:答非所问,不符合答题要求

                  感觉laravel是不是 仿thinkphp的。
                  还有个问题就是 如果我想写多个 带自定义逻辑符号的 我觉得 @JefferyWang 这个方法还是不错的

                  该答案已被忽略,原因:无意义的内容:赞、顶、同问等毫无意义的内容,与已有答案重复:相同答案,请使用投票功能,不符合答题规范:内容不是答案,可用评论、投票替代

                    撰写回答

                    登录后参与交流、获取后续更新提醒

                    相似问题
                    推荐文章