模型::query () 只能使用一次吗?

现在的问题是

public function getPost()
{
 return Post::query()
}

public function index()
{
   $post = $this->getPost();
    return view('index', [
    'post' => $post
    ]);
}

然后我在模板中想使用它们。
index.blade.php

@foreach($post->where('category_id',2)->get() as xxx){...}

结果显示成功
当再次使用这个变量$post,且category_id不为2的时候

@foreach($post->where('category_id',3)->get() as xxx){...}

调用不出来数据了。这是为什么,应该怎么解决?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
leo
最佳答案

(clone $post)->where(xxxxxxxxx)

4年前 评论
讨论数量: 4
leo

(clone $post)->where(xxxxxxxxx)

4年前 评论
yema

查询构造器一次执行过程中同时使用2次查询,where条件会叠加。

file

file

4年前 评论
qIXbwU11 (楼主) 4年前
yema (作者) 4年前
leo

(clone $post)->where(xxxxxxxxx)

4年前 评论
自由与温暖是遥不可及的梦想

遇到什么。打印 能告诉你想要的

4年前 评论

如果非要这么写的话可以用

$post->newQuery()->where('category_id', xxxx)->get()
4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!