PHPackages                             neoacevedo/laravel-gridview - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. neoacevedo/laravel-gridview

ActiveLaravel-extension[Utility &amp; Helpers](/categories/utility)

neoacevedo/laravel-gridview
===========================

Laravel GridView es un paquete para generar una tabla con datos de array de Arrays/Eloquent/Collections.

24.03.10(2y ago)03GPL-3.0+PHPPHP ^7.4 || ^8.0

Since Jan 26Pushed 2y ago1 watchersCompare

[ Source](https://github.com/neoacevedo/laravel-gridview)[ Packagist](https://packagist.org/packages/neoacevedo/laravel-gridview)[ Fund](https://ko-fi.com/neoacevedo)[ RSS](/packages/neoacevedo-laravel-gridview/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (2)Dependencies (1)Versions (4)Used By (0)

Laravel GridView
================

[](#laravel-gridview)

Laravel GridView es un paquete para generar una tabla con datos. Permite generar de manera rápida una tabla a partir de un array de modelos Eloquent o Collections, usando los atributos como columnas y cada fila es un modelo con sus datos.

Instalación
-----------

[](#instalación)

La forma preferida de instalar esta extensión es a través de [composer](http://getcomposer.org/download/).

Luego ejecute

```
php composer.phar require --prefer-dist neoacevedo/laravel-gridview "*"

```

o agregue

```
"neoacevedo/laravel-gridview": "*"

```

a la sección require de su archivo `composer.json`.

Luego ejecute el siguiente comando *artisan* para copiar los assets en el directorio *public/vendor/gridview/assets*:

```
php artisan vendor:publish --provider="neoacevedo\\gridview\\Providers\\GridViewServiceProvider" --tag=gridview-assets
```

Uso
---

[](#uso)

Una vez que la extensión está instalada, puede crear la tabla de la siguiente forma:

Registre el servico en el archivo de configuración *app.php* en la sección `providers`:

```
...
/*
 * Package Service Providers...
 */
neoacevedo\gridview\Providers\GridViewServiceProvider::class,
...
```

Como ejemplo, en su controlador, en el método index, puede poner lo siguiente:

```
public function index(Request $request, int $page = 1, int $perPage = 5)
{
	$data = [
		[
			'nombre' => 'Andres',
			'fecha' => 1706200888,
			'email' => 'andres@localhost.com',
		],
		[
			'nombre' => 'Jorge',
			'fecha' => 1706200890,
			'email' => 'jorge@localhost.com',
		],
		[
			'nombre' => 'Nelson',
			'fecha' => 1706200990,
			'email' => 'nilson@localhost.com',
		],
		[
			'nombre' => 'Juan',
			'fecha' => 1706201000,
			'email' => 'juan@localhost.com',
		],
		[
			'nombre' => 'Pedro',
			'fecha' => 1706201010,
			'email' => 'pedro@localhost.com',
		],
		[
			'nombre' => 'Felipe',
			'fecha' => 1706201020,
			'email' => 'felipe@localhost.com',
		],
		[
			'nombre' => 'Fredy',
			'fecha' => 1706201030,
			'email' => 'fredy@localhost.com',
		],
		[
			'nombre' => 'Richard',
			'fecha' => 1706201040,
			'email' => 'richard@localhost.com',
		],
	];

	Collection::macro('paginate', function ($perPage, $total = null, $page = null, $pageName = 'page') {
		$page = $page ?: LengthAwarePaginator::resolveCurrentPage($pageName);

		return new LengthAwarePaginator($this->forPage($page, $perPage), $total ?: $this->count(), $perPage, $page, [
			'path' => LengthAwarePaginator::resolveCurrentPath(),
			'pageName' => $pageName,
		]);
	});

	$dataProvider = collect($data)->paginate(5);
	return response()->view('index', compact('dataProvider'));
}
```

Para Laravel 6.x o uso como clase:

```
{{ gridview()->widget([
	'dataProvider' => $dataProvider,
	'tableOptions' => [
	' id' => 'datatable',
	    'class' => 'dataTable'
	],
	'columns' => [
		[
			'attribute' => 'nombre',
			'headerOptions' => ['data-sortable' => 'true']
		],
		[
			'attribute' => 'fecha',
			'format' => ['datetime', 'd/m/Y H:i:s']
		],
		'email:email:Email',
		[
			'class' => '\neoacevedo\gridview\Column\ActionColumn',
			'header' => 'Actions'
		]
	]
]) }}
```

Para Laravel &gt;=7.x, se puede de la forma anterior, o como componente:

```

```

La propiedad `dataProvider` tiene que ser de tipo `\Illuminate\Contracts\Pagination\LengthAwarePaginator` con el fin de generar el paginador.

En el array de columnas, puede especificar la clase que se encargará de renderizar el contenido de toda la columna a través de la propiedad `class`. Las clases de columna que soporta GridView son:

- `\neoacevedo\gridview\Column\ActionColumn`: Columna que se encarga de renderizar botones para diferentes acciones sobre la fila.
- `\neoacevedo\gridview\Column\CheckboxColumn`: Columna que se encarga de renderizar checkboxes.
- `\neoacevedo\gridview\Column\DataColumn`: Columna que se encarga de renderizar la mayoría de los datos. Es la columna predefinida si se omite la propiedad `class`.
- `\neoacevedo\gridview\Column\RadioButtonColumn`: Columna que se encarga de renderizar inputs de radio
- `\neoacevedo\gridview\Column\SerialColumn`: Columna que renderiza el número de cada fila.

Con cualquiera de las dos opciones, se obtendrá una tabla parecida a la siguiente:

```

                Nombre

                Fecha

                Email

                Actions

            Andres
            2024-01-25 16:41:28
            andres@localhost.com

            Jorge
            2024-01-25 16:41:30
            jorge@localhost.com

```

### Sobrescribir la plantilla `Blade`

[](#sobrescribir-la-plantilla-blade)

Si desea sobrescribir la vista que genera la tabla, ejecute el siguiente comando para que copie los archivos de vista en *resources/views/vendor/gridview*:

```
php artisan vendor:publish --provider="neoacevedo\\gridview\\Providers\\GridViewServiceProvider" --tag=gridview-view
```

Si está usando GridView como componente, la vista será copiada en *resources/views/components*:

```
php artisan vendor:publish --provider="neoacevedo\\gridview\\Providers\\GridViewServiceProvider" --tag=gridview-component-view
```

###  Health Score

22

—

LowBetter than 21% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~22 days

Total

3

Last Release

845d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b76225f409e42b614d01e1788da075062004de1026d75051db8664e071199cc2?d=identicon)[neoacevedo](/maintainers/neoacevedo)

---

Top Contributors

[![neoacevedo](https://avatars.githubusercontent.com/u/438372?v=4)](https://github.com/neoacevedo "neoacevedo (10 commits)")

---

Tags

gridviewhtmllaraveltablelaravelhtmltablegridview

### Embed Badge

![Health badge](/badges/neoacevedo-laravel-gridview/health.svg)

```
[![Health](https://phpackages.com/badges/neoacevedo-laravel-gridview/health.svg)](https://phpackages.com/packages/neoacevedo-laravel-gridview)
```

###  Alternatives

[ramonrietdijk/livewire-tables

Dynamic tables for models with Laravel Livewire

21259.6k](/packages/ramonrietdijk-livewire-tables)[okipa/laravel-table

Generate tables from Eloquent models.

57353.5k](/packages/okipa-laravel-table)[firefly-iii/data-importer

Firefly III Data Import Tool.

8045.8k](/packages/firefly-iii-data-importer)[markwalet/nova-modal-response

A Laravel Nova asset for Modal responses on an action.

17878.9k](/packages/markwalet-nova-modal-response)[gbrock/laravel-table

Table functionality for Laravel models

7845.6k](/packages/gbrock-laravel-table)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.4k](/packages/tomshaw-electricgrid)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
