Pasar variables a una custom page en Filament
Cuando creamos una custom page en Filament nos queda una clase parecida a esta:
<?php
namespace App\Filament\Pages;
use Filament\Pages\Page;
class TestPage extends Page
{
protected static ?string $navigationIcon = 'heroicon-o-document-text';
protected static string $view = 'filament.pages.test-page';
}
Para pasarle variables a la vista test-page
normalmente añadiríamos atributos públicos a la clase. Sin embargo, hay casos en los que esto no es posible dado que Livewire no puede recoger ciertos tipos de variables en JS (ej. la paginación de un modelo). Para esos casos, podemos usar la función getViewData()
, que envía variables al front pero sin que sean atributos de la clase:
protected function getViewData(): array
{
return [
'projects' => Project::orderBy('order')→paginate(10),
];
}