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

夕君
  • 1.4k
 $goodsShow = Goods::where('product_id','=',$id)->first();

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

有大神指点一下吗

评论
阅读 77.6k
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);
Forri
  • 1
新手上路,请多包涵
$goodsShow = Goods::where([
'a' => '1',
'b' => '2',
])->first();

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

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

也可以用

orWhere()
vijay_jie
  • 4
新手上路,请多包涵

..........

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

撰写回答

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

宣传栏