PHP code example of testmonitor / eloquent-searchable
1. Go to this page and download the library: Download testmonitor/eloquent-searchable 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/ */
testmonitor / eloquent-searchable example snippets
use Illuminate\Database\Eloquent\Model;
use TestMonitor\Searchable\Searchable;
class User extends Model
{
use Searchable;
// ...
}
use App\Models\User;
use Illuminate\Routing\Controller;
use TestMonitor\Searchable\Aspects\SearchAspect;
class UsersController extends Controller
{
public function index()
{
return User::query()
->seachUsing([
SearchAspect::exact('first_name'),
SearchAspect::exact('last_name'),
SearchAspect::partial('email'),
])
->get();
}
}
use App\Models\Post;
use Illuminate\Routing\Controller;
use TestMonitor\Searchable\Aspects\SearchAspect;
class PostsController extends Controller
{
public function index()
{
return Post::query()
->seachUsing([
SearchAspect::exact(name: 'title'),
])
->get();
}
}
use App\Models\Post;
use Illuminate\Routing\Controller;
use TestMonitor\Searchable\Aspects\SearchAspect;
class PostsController extends Controller
{
public function index()
{
return Post::query()
->seachUsing([
SearchAspect::partial(name: 'title'),
])
->get();
}
}
use App\Models\Post;
use Illuminate\Routing\Controller;
use TestMonitor\Searchable\Aspects\SearchAspect;
class PostsController extends Controller
{
public function index()
{
return Post::query()
->seachUsing([
SearchAspect::json(name: 'settings'),
])
->get();
}
}
use App\Models\Issue;
use Illuminate\Routing\Controller;
use TestMonitor\Searchable\Aspects\SearchAspect;
class IssuesController extends Controller
{
public function index()
{
return Issue::query()
->seachUsing([
SearchAspect::prefix(name: 'code', prefix: 'ISSUE-', exact: true),
SearchAspect::prefix(name: 'code', prefix: 'ISSUE-'),
])
->get();
}
}
use TestMonitor\Searchable\Weights;
use Illuminate\Database\Eloquent\Builder;
use TestMonitor\Searchable\Contracts\Search;
class StartsWithSearch implements Search
{
/**
* @param \Illuminate\Database\Eloquent\Builder<\Illuminate\Database\Eloquent\Model> $query
* @param \TestMonitor\Searchable\Weights $weights
* @param string $property
* @param string $term
* @param int $weight
*/
public function __invoke(Builder $query, Weights $weights, string $property, string $term, int $weight = 1): void
{
$query->where($property, 'like', "{$term}%");
}
}
use App\Models\Post;
use Illuminate\Routing\Controller;
use App\Search\Aspects\CustomSearch;
use TestMonitor\Searchable\Aspects\SearchAspect;
class PostsController extends Controller
{
public function index()
{
return Post::query()
->seachUsing([
SearchAspect::custom('name', new CustomSearch),
])
->get();
}
}
use App\Models\Post;
use Illuminate\Routing\Controller;
use TestMonitor\Searchable\Aspects\SearchAspect;
class PostsController extends Controller
{
public function index()
{
return Post::query()
->seachUsing([
SearchAspect::partial(name: 'title', weight: 20),
SearchAspect::partial(name: 'summary', weight: 10),
SearchAspect::partial('description'),
])
->get();
}
}
use App\Models\Post;
use Illuminate\Routing\Controller;
use TestMonitor\Searchable\Aspects\SearchAspect;
class PostsController extends Controller
{
public function index()
{
return Post::query()
->seachUsing([
SearchAspect::exact('blog.title'),
SearchAspect::partial('blog.description'),
])
->get();
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.