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

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

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

有大神指点一下吗

阅读 87.3k
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一样的

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

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

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

也可以用

orWhere()
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题