Skip to content

Shorts

Avviso di salvare le modifiche ▼

Avviso di salvare le modifiche

In Filament bisogna “dire” al sistema di avvisare l’utente quando esce da una modifica di un record senza prima averle salvate:

->unsavedChangesAlerts()

Questo metodo deve essere aggiunto a return $panel

del file AdminPanelProvider.php

Rendere collassabile la sidebar ▼

Rendere collassabile la sidebar

Per rendere collassabile la sidebar in Filament aggiungiamo questo metodo nel file app/Providers/AdminPanelProvider.php:

return $panel
    ...
    ->sidebarCollapsibleOnDesktop()
    ...

 

Cambiare la larghezza del content delle pagine ▼
Creare un’email ▼

Creare un’email

Per creare una classe in grado di inviare email in base a determinati eventi o comandi, usiamo

php artisan make:mail NomeMail

questo comando crea il file app/Mail/NomeMail.php

Al suo interno dobbiamo indicare quale template usare, normalmente si definisce nel metodo content()

public function content(): Content
    {
        return new Content(
            view: 'emails.avviso_email',
            with: [
                'mia_variabile' => $this->miei_valori,
            ],
        );
    }

Dove “miei_valori” è una variabile che contiene dati che possono variare in base a tutto ciò che vogliamo, p.e. cliente, ordine, ecc.

Invece “mia_variabile” è il nome della variabile che verrà usata nel template blade che andrà scritto in resources/emails/avviso_email.blade.php.

Creare un comando ▼

Creare un comando

Per creare un comando che esegue determinate operazioni usiamo

php artisan make:command NomeComando

Viene creata una classe NomeComando nel file app/Console/Commands/NomeComando.php

Conviene definire la variabile $signature al fine di usarlo quando verrà richiamato:

protected $signature = 'nome:comando';

Quindi per eseguirlo useremo

php artisan nome:comando

 

Tornare alla lista dopo un salvataggio di un record ▼

Tornare alla lista dopo un salvataggio di un record

Quando creiamo o modifichiamo un record di una risorsa Filament, spesso vogliamo tornare all’elenco invece del comportamento di default che ci porterebbe alla view che mostra i dati appena salvati.

Per ottenere questo comportamento dobbiamo aggiungere un metodo nella pagina specifica, per esempio nel file app/Filament/Resources/Cars/Pages/CreateCar.php

protected function getRedirectUrl(): string
{
    return $this->getResource()::getUrl('index');
}

 

Creare un Seeder per popolare una tabella ▼

Creare un Seeder per popolare una tabella

Se vogliamo importare una serie di dati e salvarli nel database, i seeder fanno al caso nostro. Sono molto versatili e usano i Model di Eloquent, quindi anche molto potenti.

Possiamo partire da un file csv, un JSON, un xml, una connessione ad un altro database, insomma da quello che vogliamo.

php artisan make:seeder NomeSeeder

Una volta creato possiamo intervenire nel metodo run().

Per eseguirlo fai così.

Creare utente Filament ▼

Creare utente Filament

Per creare un utente FilamentPHP (vedi questo articolo per installare un progetto Laravel che usi Filament)

php artisan make:filament-user

Inserire:

  • un nome utente
  • un indirizzo email
  • una password
Aggiungere la gestione dei ruoli in Filament ▼

Aggiungere la gestione dei ruoli in Filament

Per rendere pubblico il file di configurazione di Filament Shield usiamo

php artisan vendor:publish --tag=filament-shield-config

Poi apriamo il file app/Providers/Filament/AdminPanelProvider.php e aggiungiamo questo plugin alla lista:

use BezhanSalleh\FilamentShield\FilamentShieldPlugin;

...

->plugins([
    FilamentShieldPlugin::make(),
])

 

Creare controller in Laravel ▼

Creare controller in Laravel

Per creare un nuovo controller con già creati i metodi principali per index, create, update ecc, usare

php artisan make:controller NomeController --resource