Получение 2 результатов от одного запроса с явным laravel - PullRequest
0 голосов
/ 02 мая 2020

Я хочу получить 2 результата из запроса фильтра в Laravel версии 6. Я хочу получить информацию из таблицы продуктов, в которой пользователь может изменить элемент, существующий на странице, с помощью поля выбора с именем 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, и я не могу получить правильный результат из следующей строки, я получаю результат $availableCategories в $productList переменная. я не хочу повторять мой код снова, как я могу иметь дело?

результат $ availableCategories полностью верен, но результат productList равен $availableCategories, который разбит на страницы.

1 Ответ

0 голосов
/ 02 мая 2020

ОК, я думаю, что вижу проблему. Вы пытаетесь повторно использовать переменную $query. Вы, вероятно, хотите что-то вроде этого:

Я предполагаю, что product_categories - таблица для ваших категорий товаров. Вы также можете использовать модель, если хотите.

Кроме того, поскольку БД не имеет внутреннего порядка c, вам также следует указать OrderBy().

$take = $request->input("pageitem", 10);
$productList = Product::paginate($take)->get();
$availableCategories = DB::table('product_categories')->distinct()->get("category_id");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...