Laravel Searchable

v 1.4.*

Basic Usage

Search across one or more fields in your model:

$searchQuery = request('search_query');

$users = User::search($searchQuery, ['%name', '%email', 'phone'])->get();

What this does:

  • Searches for name with partial matching (LIKE %searchQuery%)
  • Searches for email with partial matching (LIKE %searchQuery%)
  • Searches for exact phone match

Generated SQL equivalent:

User::where('name', 'like', '%' . $searchQuery . '%')
    ->orWhere('email', 'like', '%' . $searchQuery . '%')
    ->orWhere('phone', $searchQuery)
    ->get();

Understanding Search Operators

The package uses prefix operators to define search behavior:

  • %field - Partial match (LIKE %value%)
  • field - Exact match (WHERE field = value)