1. Go to this page and download the library: Download backfron/laravel-finder 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/ */
backfron / laravel-finder example snippets
// Instead of something like these
$companies = (new App\Models\User)->newQuery();
if (request()->has('city')) {
$companies->where('city', request('city'));
}
if (request()->has('status')) {
$companies->where('status', request('status'));
}
if (request()->has('employess_number')) {
$companies->where('employess_number', '<=' ,request('employess_number'));
}
// Now you can handle it like these
$clients = CompanyFinder::filters([
'city' => request('city'),
'status' => request('status'),
'employees_number' => request('employees_number'),
])->get();
namespace App\Finders\Tasks;
use App\Models\Task;
use Backfron\LaravelFinder\LaravelFinder;
class TaskFinder extends LaravelFinder
{
protected static $model = Task::class;
}
namespace App\Finders\Tasks\Filters;
use Backfron\LaravelFinder\Contracts\FilterContract;
use Illuminate\Database\Eloquent\Builder;
class Status implements FilterContract
{
/**
* Apply a filter to the query builder instance.
*
* @param Builder $builder
* @param mixed $status
* @return Builder $builder
*/
public static function apply(Builder $query, $status)
{
return $query->where('status', $status);
}
}
public static function apply(Builder $query, $status)
{
return $query->where('status', 'LIKE', "{$status}%");
}
use App\Finders\Tasks\TaskFinder;
use Illuminate\Support\Facades\Auth;
$tasks = TaskFinder::filters([
'status' => request('status'),
'user_owner_id' => request('user_owner_id'),
'finished_at' => request('finished_at'),
])
->where('user_id', Auth::id())
->get();
use App\Finders\Tasks\TaskFinder;
use Illuminate\Support\Facades\Auth;
$tasks = TaskFinder::global(function ($query) {
$query->where('user_owner_id', Auth::id());
})
->filters([
'status' => request('status'),
'finished_at' => request('finished_at'),
])->get();
use App\Finders\Tasks\TaskFinder;
use Illuminate\Support\Facades\Auth;
use App\Finders\Tasks\Filters\Status;
$tasks = TaskFinder::global(Status::class, 'completed')
->filters([
'user_owner_id' => request('user_owner_id'),
'finished_at' => request('finished_at'),
])->get();
// Or add many global filters at once
$tasks = TaskFinder::global([
[Status::class, 'completed'],
function ($query) {
$query->where('user_owner_id', Auth::id());
},
// ..., MORE
// ..., GLOBAL
// ..., FILTERS
])
->filters([
'finished_at' => request('finished_at'),
])->get();