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

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

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
leo
最佳答案

(clone $post)->where(xxxxxxxxx)

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

(clone $post)->where(xxxxxxxxx)

4年前 评论
leo

(clone $post)->where(xxxxxxxxx)

4年前 评论
yema

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

file

file

4年前 评论
qIXbwU11 (楼主) 4年前
yema (作者) 4年前
自由与温暖是遥不可及的梦想

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

4年前 评论

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

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

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