fomvasss/laravel-url-facet-filter

Building and displaying facet filter parameters and managing them

Downloads

121

Stars

2

Version

1.6.0

Laravel URL Facet Filter

License Build Status Latest Stable Version Total Downloads Quality Score

Building and displaying facet filter parameters and managing them


Installation

Run from the command line:

composer require fomvasss/laravel-url-facet-filter

Publishing

php artisan vendor:publish --provider="Fomvasss\UrlFacetFilter\ServiceProvider"

Usage

Build url`s

<a href="{{ \FacetFilter::build('color', 'red') }}">Red</a>	
<a href="{{ \FacetFilter::build('color', 'green') }}">Green</a>	
<a href="{{ \FacetFilter::build('size', 'm') }}">M</a>	
<a href="{{ \FacetFilter::build('size', 'xl') }}">XL</a>	

Usage in controller

app/Http/Controllers/ProductControllr.php

<?php 

namespace App\Http\Controllers;

class ProductController extends Controller 
{
        public function index(Request $request)
        {
            $filterAttrs = \FacetFilter::toArray($request->get(\FacetFilter::getFilterUrlKey()));
            
            $products = Product::with('media')
                ->facetFilterable($filterAttrs) // facetFilterable - for example your scope
                ->get();

            return view('article.index', [
                'articles' => $products,
            ]);
        }  
}

Example, in url string:

https://my-site.com/products?⛃=color☛red⚬green♦size☛m♦ergonomic☛form-1⚬form-2

In php controller (after prepare FacetFilter::toArray()):

array:3 [▼
  "color" => array:2 [▼
    0 => "red"
    1 => "green"
  ]
  "size" => array:1 [▼
    0 => "m"
  ]
  "ergonomic" => array:2 [▼
    0 => "form-1"
    1 => "form-2"
  ]
]

Links

fomvasss

Author

fomvasss