Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

503
Vistas
Laravel Livewire con AlpineJS: Entangle a Collection no funciona

Tengo un componente Livewire con las siguientes propiedades...

 class MyClass extends Livewire\Component { public $dataCollection; // instance of Illuminate\Database\Eloquent\Collection public $dataArray; // converted to an array of arrays /* ... blah ... */ function getData() { /* ... */ $this->dataCollection = $ordersModel->processMySearch($srch)->get(); // returns multiple lines of data, producing a Collection $this->dataArray = $this->dataCollection->toArray(); } }

Ahora, mi objetivo es enviar estos datos a la plantilla Livewire/Blade y entrelazarlos con una variable AlpineJS.

 <div x-data="{ myCollection: @entangle('dataCollection').defer, myArray: @entangle('dataArray').defer }"> <table> <tbody> <template x-for="myRow in myCollection"> <tr> <template x-for="(myData, colName) in myRow"> <td :class="colName" x-text="myData"></td> </template> </tr> </template> </tbody> </table> </div>

No funciona, porque parece que la colección de modelos no se convierte (o asigna) correctamente de Livewire/PHP a la variable myCollection de Alpine. Cuando ejecuto una depuración de console.log() en la variable, me dice que es una matriz vacía.

ingrese la descripción de la imagen aquí

Sin embargo, si hago un bucle en la tabla, la variable myArray (en lugar de myCollection ):

 <table> <tbody> <template x-for="myRow in myArray"> <tr> <!-- etc -->

Luego, la tabla HTML se genera en la página muy bien.

La razón por la que preferiría usar el objeto Collection es porque es posible que desee actualizar algunos de los datos de la tabla. Si puedo actualizar los datos en los objetos del modelo ( @entangle ed) y hacer que los modelos se sincronicen con el componente Livewire/PHP, entonces no tendré que volver a generar los modelos en PHP, lo que podría ahorrarme algo de base de datos llamadas

¿Es posible @entangle variables de Alpine en colecciones de PHP de esta manera? Si es así, ¿qué estoy haciendo mal y por qué no funciona en el ejemplo anterior?

X


Descargo de responsabilidad El código anterior es un extracto (muy) simplificado de un proyecto más grande en el que estoy trabajando. No es una copia/pegado directo del código original y, como tal, puede contener errores menores de sintaxis. Trátelo como un pseudocódigo.

about 4 years ago · Santiago Gelvez
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda