PHP code example of touhidurabir / laravel-filterable
1. Go to this page and download the library: Download touhidurabir/laravel-filterable library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
touhidurabir / laravel-filterable example snippets
public function name($value) {
// return $this->builder->;
}
public function email($value) {
// return $this->builder->;
}
public function name($item, $value) {
}
public function email($item, $value) {
}
namespace App\QueryFilters;
use Touhidurabir\Filterable\Bases\BaseQueryFilter;
use Illuminate\Database\Eloquent\Builder;
class UserQueryFilter extends BaseQueryFilter {
/**
* Retrieve the rules to validate filters value.
* If a filter validation fails, the filter is not applied.
*
* @return array
*/
protected function getRules() {
return [];
}
/**
* Filter by request param name
*
* @param mixed $value
* @return object<\Illuminate\Database\Eloquent\Builder>
*/
public function name($value) {
// return $this->builder->;
}
/**
* Filter by request param email
*
* @param mixed $value
* @return object<\Illuminate\Database\Eloquent\Builder>
*/
public function email($value) {
// return $this->builder->;
}
}
namespace App\CollectionFilters;
use Throwable;
use Touhidurabir\Filterable\Bases\BaseCollectionFilter;
use Illuminate\Support\Collection;
class UserCollectionFilter extends BaseCollectionFilter {
/**
* Retrieve the rules to validate filters value.
* If a filter validation fails, the filter is not applied.
*
* @return array
*/
protected function getRules() {
return [];
}
/**
* Filter by name
*
* @param object $item
* @param mixed $value
*
* @return
*/
public function name($item, $value) {
// return
}
/**
* Filter by email
*
* @param object $item
* @param mixed $value
*
* @return
*/
public function email($item, $value) {
// return
}
}
use Touhidurabir\Filterable\Filterable;
class User extends Model {
use Filterable;
}
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\QueryFilters\UserQueryFilters;
use App\CollectionFilter\UserCollectionFilter;
class UserController extends Controller {
public function index(Request $request) {
$users = User::filter(new UserQueryFilter($request))->get();
// or filter a collection as
$users = (new UserCollectionFilter)->filter(User::all(), ['email', 'name']);
// of pass $request in constructor for collection filter
$users = (new UserCollectionFilter($request))->filter(User::all());
}
}