Laravel 5.6 - request () с 2 переменными - PullRequest
0 голосов
/ 07 июня 2018

Я фильтрую результаты через переменную request () ->.Когда есть только одна переменная, представление возвращается, как и должно быть, например ... / products / summer, отображая только товары, которые относятся к определенному сезону.

То, что я пытаюсь сделать, это вызвать в секундупеременная / products / summer? product_category = рубашки, отображающие продукты сезона, как указано выше, при фильтрации тех, которые относятся к определенной категории (например, рубашки).

Это моя часть контроллера:

public function index()
    {
      if (request()->season) {
        $products = Product::with('seasons')->whereHas('seasons', function ($query){
        $query->where('slug', request()->season);
      })->get();
        $product_categories = ProductCategory::with('seasons')->whereHas('seasons', function ($query){
        $query->where('slug', request()->season);
      })->get();
        $season = Season::where('slug', request()->season)->firstOrFail();



      } **elseif (request()->product_category)** {
        $products = Product::with('product_categories')->whereHas('product_categories', function ($query){
        $query->where('slug', request()->product_category);
      })->get();
        $product_categories = ProductCategory::with('seasons')->get();
        $season = Season::where('slug', request()->season)->first();

}......

return view('season')->with([
        'products' => $products,
        'product_categories' => $product_categories,
        'season' => $season,



      ]);

Есть ли способ включить сезон и product_category в приведенный выше код, чтобы он соответствовал лету? Product_category = shirts?

Моя навигационная ссылка передает это:

href="{{ route ('season.index',['season' => $season->slug, 'product_category' => $product_category->slug])}}"

Маршрут:

Route::get('/products/{season?}', 'SeasonController@index')->name('season.index');

Спасибо за потраченное время.

1 Ответ

0 голосов
/ 07 июня 2018

Я не совсем понял, что вам нужно. Если этот код был бесполезен, пожалуйста, объясните больше, и я изменил его:

мой взгляд:

<a
href="{{ route ('season.index',['season' =>$season->slug, 'product_category' => $product_category->slug])}}"
>send</a>

мой маршрут:

Route::get('/products', 'SeasonController@index')->name('season.index');

SeasonController контроллер:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class SeasonController extends Controller
{
    public function index(Request $request)
    {
        if ($request->get('season'))
        {
            # do something

        }elseif($request->get('product_category'))
        {
            # do something
        }
        else
        {
            # do something
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...