Adquiere este curso para tener acceso a todas las lecciones
Comprar curso15. Columnas de imagen
En este tema aprenderás a trabajar con columnas de imágenes utilizando Laravel Livewire Tables. Te mostraremos cómo definir y personalizar tus columnas de imágenes para que se adapten a tus necesidades.
2 comentarios
Inicia sesión para comentar
Comentarios:
-
Jean Gaspar Gracia Gonzalez hace 1 año
porque no dejas es código usando el row?
-
Victor Arana Flores hace 1 año
Las columnas de imagen son una manera fácil de mostrar imágenes en tus tablas utilizando la función ImageColumn::make(), lo que evita tener que crear vistas parciales utilizando format().
Por ejemplo, si deseas mostrar un avatar de usuario, puedes utilizar el siguiente código:
ImageColumn::make('Avatar') ->location( fn($row) => storage_path('app/public/avatars/' . $row->id . '.jpg') ),
También puedes pasar una serie de atributos para aplicar a la etiqueta de la imagen, como clase y texto alternativo, utilizando la función attributes():
ImageColumn::make('Avatar') ->location( fn($row) => storage_path('app/public/avatars/' . $row->id . '.jpg') ) ->attributes(fn($row) => [ 'class' => 'rounded-full', 'alt' => $row->name . ' Avatar', ]),
Esto te permite personalizar aún más la presentación de la imagen en tu tabla, para que se adapte a tus necesidades específicas.
-
Walter Ramos hace 1 año
El problema capaz surge si tengo el modelo articulos y este tiene asociado imagenes, como hago para atraves de row mostrar la url de la imagen si este dato no esta como columna?
-
Danilo hace 1 año
Espero te sirva.
Ejemplo para obtener la imagen de una relación Uno a Uno Polimórfica
class Brand extends Model { use HasFactory; protected $fillable= ['name','slug']; public function image() { return $this->morphOne(Image::class, 'imageable'); } }
En el componente datatable.
class BrandTable extends DataTableComponent{ public function columns(): array { //Accedemos a la propiedad URL de la relación con image Column::make("MyImagen", "image.url") ->hideIf(true), //Ya podemos pasar a la vista el valor de la URL //a través la variable $row Column::make('Image')->label( fn ($row) => view('admin.brands.tables.image', ['img' => Storage::url($row->image->url)]) )->html(), } public function builder(): Builder { return Brand::query() //Nombre de la relacion ->with('image') //Nombre de la tabla en la db ->where('images.imageable_type', Brand::class); } }
En la vista empleada para la columna.
<img src="{{$img}}">
-