liberusoftware/search-livewire
A Laravel Livewire package that adds search components to your app, letting you wire up live, reactive search across your models with minimal setup. Integrates with Blade views for instant results.
composer require liberusoftware/search-livewire. Because this is a presentation adapter, also confirm the underlying search module (likely liberusoftware/search or similar) is installed and configured — this package almost certainly does not implement search itself.composer.json for required versions of livewire/livewire, Laravel, and the core search package. With 0 stars and a recent release date, verify compatibility against your app before committing.config/search-livewire.php (publish with php artisan vendor:publish --tag=search-livewire-config if available)resources/views/ for the search UI Blade templatessrc/ for the Livewire component class (commonly Search or SearchBar)search-livewire::...)<livewire:search-livewire.search />
{{-- or the alias registered by the service provider --}}
tinker. If the adapter is thin, most failures will come from the underlying search module, not Livewire.wire:model.debounce.300ms="query" (Livewire v2) or wire:model.live.debounce.300ms="query" (v3) to avoid flooding the search backend on every keystroke.render() or result-mapping methods, and register your subclass in the layout. This is usually cleaner than editing vendor views.resources/views/vendor/search-livewire and adjust markup, result partials, and empty states. Keep the package's class names and wire: bindings intact to avoid breaking the component contract.public array $filters = []), pass them to the search service, and reset pagination when filters change. This keeps everything bookmarkable via query-string syncing: protected $queryString = ['query', 'filters'];LengthAwarePaginator before rendering. Do not call ->paginate() on a collection.<livewire:search-livewire.search :query="request('q')" :filters="request('filters', [])" />
Livewire::test(Search::class)
->set('query', 'laravel')
->assertSee('Laravel');
Mock or fake the underlying search service so tests do not depend on an external engine.
NOASSERTION license mean you should audit the license and source before production use. Confirm the license file is present and compatible with your project.wire:model vs wire:model.live, $emit vs $this->dispatch) can silently break the adapter. Check the package's composer.json constraints and pin Livewire accordingly.search. If you have your own Search component, use the fully qualified class name in Blade or rename the alias in config.View [search-livewire::...] not found, the view namespace is not registered or views were not published. Run php artisan vendor:publish and check the service provider's loadViewsFrom path.@once, @push, or x-data usage.query or filters change, explicitly call $this->resetPage() (or the package's equivalent). Otherwise users land on page 5 of a smaller result set and see an empty list.$this->dispatchBrowserEvent / dispatch and browser devtools to confirm requests fire. For backend failures, log the search service response and check whether the adapter swallows exceptions during rendering.render()/result formatting, and publish config/views. Avoid editing files in vendor/ — the package is not widely used, so updates may still contain breaking changes.#[Url(as: 'q')] (Livewire v3) or $queryString carefully.How can I help you explore Laravel packages today?