No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Filtrado por campo de búsqueda

11/26
Recursos

Aportes 9

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

A mi me funcionó con Livewire 3 haciendo esto:

<input
	type="text" placeholder="// ..."
	class="bg-slate-800 border-0 rounded-md w-1/3 p-3 text-white/60 text-xs" 
	wire:model.live="search"
>

wire:model.live me solucionó el tema

Form Liveware v3.0 ![](https://static.platzi.com/media/user_upload/form-livewire3.0-155b9445-7f7e-4d40-acc9-dbd5ab9442e6.jpg)
En Livewire 3 no quería enviara cada letra para buscar entonces encontré `wire:model.live.debounce.250ms` <https://livewire.laravel.com/docs/wire-model> *cuando se utiliza* `wire:model.live`*, Livewire agrega un rebote de 150 milisegundos a las actualizaciones del servidor.Esto significa que si un usuario escribe continuamente, Livewire esperará hasta que el usuario deje de escribir durante 150 milisegundos antes de enviar una solicitud.* ```html <input type="text" placeholder="// ..." class="bg-slate-800 border-0 rounded-md w-1/3 p-3 text-white/60 text-xs" wire:model.live.debounce.250ms="search" > ```Entonces cambie el tiempo a 250 y con esto puedo enviar mas letras a buscar y son menos peticiones al servidor, si encuentran otra idea me gustaría verla para no enviar letra a letra.
Para mejorar el buscador hice lo siguiente: * Primero cambié los espacios de la variable "search" para que el usuario no tenga que escribir las palabras completas: $strSearch = $this->search == '' ? false : ('%' . str\_replace(' ', '%', $this->search) . '%'); * Y segundo, utilizo la variable "strSearch" en el query utilizando la función "when" (por eso cuando está vacía le asigno el valor false): $threads = Thread::when($strSearch, function ($query, $strSearch) { return $query->where('title', 'like', $strSearch);})->latest()->withCount('replies')->get(); Entonces cuando la variable "search" está vacía, no se ejecuta la parte del query que hace el like en el campo título:

Para los que nacimos en Jquery esto te explota la cabeza, es a lo que llamamos programación declarativa.

Me parece que la propiedad $search debe estar definida como plublic para estar disponible tambien en la vista.

Creó que necesito otro curso de eloquent, no habia visto query, de hecho siempre me voy más por QueryBuilder pq me parece cercano a SQL, es dificil dejar las raices y dar paso adelante pero vamos.

estoy usando xampp en linux, y me doy cuenta que siempre que se trabaja con livewire es necesario crear un virtual host en vez de solo localhost, ademas si esta usando breeze es necesario borrar las lineas donde se importa alpinejs en resources/js/app.js sino no funcionara la vinculacion entre el input y la variable

Hola por si lo necesitan hize una consulta para poder buscar por dos columnas, pero esta no funciona usando eloquent se debe usar una ` function query`, ademas que se necesita buscar por minusculas y mayusculas ``` $thread->where(function($query) { $query->where('code', 'ilike', "%$this->search%") ->orWhere('description', 'ilike', "%$this->search%"); }); ```
Excelente aprendizaje, vamos bien. ![](https://static.platzi.com/media/user_upload/image-47389c10-9e6c-42a0-a0b0-395ba4a40e8b.jpg)

Seguí la parte de la consulta al pie de la letra pero al momento de pasar los datos a la vista parecía que no estaba trayendo los datos, en realidad no supe porque pero si te sucede lo mismo yo lo solucione así:

return view('livewire.show-threads', [
            'categories' => $categories,
            'threads'    => $threads = $threads->get()
        ]);