模型::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){...}

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
leo
最佳答案

(clone $post)->where(xxxxxxxxx)

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

(clone $post)->where(xxxxxxxxx)

1年前 评论
yema

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

file

file

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

(clone $post)->where(xxxxxxxxx)

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

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

1年前 评论

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

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

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