• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于Laravel多个条件的关联查询问题 ?

php 搞代码 4年前 (2022-01-22) 12次浏览 已收录 0个评论

关于Laravel多个条件的关联查询问题 :

order 订单表:

  • id 自增ID

  • order_id 订单号

  • paid_date 支付时间

order_product 订单产品表:

  • id 自增ID

  • fk_order_id 订单号,外键

  • product_name 名称

  • product_number 编号

  • quantity 数量

表关系:

order - 1:n - order_product

需求:
通过 Laravel Eloquent ORM 实现以下原生 SQL:

select * from order as A inner join order_product as B on A.order_id=B.fk_order_id where (A.paid_date between '2016-01-01' and '2016-09-01') and B.product_name like '%Apple iPhone%'

手册看了几次,尝试着做,但目前只通过 whereHas 实现 B.product_name like 这部分的条件,当两个表都存在条件的时候,实在是做不出来。
望 Laravel 前辈们指点一下,谢谢!

PS. 补充:
目前是针对列表页做筛选检索,存在 paginate 的需求。

解决方法:

class Order extends Model{    public function scopeProducts($query)    {        return $query->join('order_product', function($join) {   <b style="color:transparent">本文来源gao@!dai!ma.com搞$$代^@码!网!</b><strong>搞gaodaima代码</strong>         $join->on('order.order_id', '=', 'order_product.fk_order_id');        });    }}
Order::products()->where(....);

以上就是关于Laravel多个条件的关联查询问题 的内容,更多相关内容请随时关注我们网站!

相关文章:

Laravel 关联查询只获取管理对象的部分数据

laravel 关联查询问题

laravel 关联查询文章和文章作者


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于Laravel多个条件的关联查询问题 ?

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址