【发布时间】:2026-02-09 14:05:01
【问题描述】:
我想从 Laravel 版本 6 中的过滤器查询中获得 2 个结果。我想通过名称为 pageitemcount 的选择框获取用户可以更改页面中存在的项目的产品表信息,并且可以通过字段搜索select 的名称。当用户选择 pageitemcount 并搜索名称时,提交表单并运行以下查询。当用户搜索任何内容时,类别的可用过滤器必须限制为可用类别。我想在产品列表之外显示不同的产品类别。
public function productIndex(Request $request)
{
$take = 10;
$query = Product::query();
if ($request->has('pageitem')){
$take = $request->input("pageitem");
}
// Search
if ($request->has('search')){
$query = $query->where('name', $request->input("search"));
}
$availableCategoriesQuery= $query;
// Get product unique product category to show them to user
// that exist in prodcut list that show to user
$availableCategories = $availableCategoriesQuery->select("category_id")->distinct()->get();
// Get product list by pagination
$productList = $query->paginate($take);
return view('admin.manage_product', ['productList' => $productList, 'availableCategories' => $availableCategories]);
}
但是当$availableCategories 被执行时,影响$query 变量,我无法从下一行得到正确的结果,我在$productList 变量中得到$availableCategories 的结果。我不想再重复我的代码,我该如何处理?
$availableCategories 的结果是完全正确的,但是productList 的结果是$availableCategories 是分页的。
【问题讨论】:
-
很难弄清楚你在问什么。尝试发布一些示例 $request 信息以及您正在寻找什么样的响应。如果您希望获得两个完全不同的查询,最好分别运行它们。
-
我想澄清一下,我想将此查询的 2 个单独结果发送给用户