1. Go to this page and download the library: Download meiko/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/ */
meiko / laravel-filterable example snippets
return [
'namespace' => '\App\Models' # The namespace which contains your models
];
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Meiko\Filterable\Filterable;
class Post extends Model {
use Filterable;
}
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Post;
class PostController extends Controller
{
public function index(Request $request)
{
return Post::filters(
function ($filterer) {
return $filterer;
}
);
}
return [
'namespace' => '\App\Models',
'idResolver' => App\Models\IdResolver::class // The class has to have resolve() method
];
namespace App\Models;
use Hashids\Hashids;
class IdResolver
{
public function resolve($modelName, $id, $routeKeyName)
{
$hashids = new Hashids();
$decodedId = $hashids->decode($id);
return $decodedId;
}
}
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Post;
class PostController extends Controller
{
public function index(Request $request)
{
return Post::filters(
function ($filterer) {
$filterer->addFilterColumn(
'username',
function ($query, $type, $value) {
$query->whereHas(
'user',
function ($userQuery) use ($value) {
return $userQuery->where('users.username', 'like', $value);
}
);
}
);
return $filterer;
}
);
}
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Meiko\Filterable\Filterable;
class Post extends Model {
use Filterable;
/**
* Searchable attributes
*
* @var array
*/
protected $searchable = [
'title',
'content',
];
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.