Skip to content

Snippets

Creare migration in Laravel

Creare migration in Laravel

Una migrazione indica la creazione o modifica di una tabella del database:

php artisan make:migration nome_migrazione

Verrà creato un file dentro database/migration

Per convenzione verrà dato un nome con queste caratteristiche:

  • create_nome_modello_al_plurale_table
  • update_nome_tabella
  • add_campo_tabella
Creare Policy in Filament Shield

Creare Policy in Filament Shield

Non basta definire i permessi per ogni ruolo dal backend di FIlament, bisogna creare un file che gestisca le varie policies in base al ruolo utente:

php artisan shield:generate --resource=NomeModelloResource --panel=admin

 

Creare una gestione Email

Creare una gestione Email

Per creare correttamente il file che gestirà l’invio di un certo tipo di email, eseguiamo questo comando:

php artisan make:mail OrderShipped --markdown=emails.order-shipped

La classe corrispondente viene creata dentro app/Mail e qui possiamo definire il template blade usato che andrà caricato nella cartella resources/views.

Creare un Job

Creare un Job

Un Job è un “lavoretto” che necessita di tempo per essere eseguito oppure è asincrono e non conviene tenerlo inserito nel flusso delle azioni o delle schermate di Laravel.

php artisan make:job NomeJob

Il file viene creato in app/Jobs.

Installare la libreria per esportare un file nel formato Excel
Creare un comando CRON in Laravel

Creare un comando CRON in Laravel

Nella cartella root di Laravel

php artisan make:command DemoCron --command=demo:cron

la firma del comando demo:cron deve essere identica a quella definita nella classe che viene creata in app/Console/Commands/DemoCron.php

Il metodo handle() diventa:

/**
 * Execute the console command.
 *
 * @return mixed
 */
public function handle()
{
    \Log::info("Cron is working fine!");
    /*
       Scrivi qui la tua logica
     */
}

Poi in app/Console/Kernel.php indicare il comando da eseguire:

protected function schedule(Schedule $schedule)
{
    $schedule->command('demo:cron')->everyMinute();
}

Verificare se c’è bisogno d aggiungere il seguente codice prima delle definizioni dei metodi:

/**
 * The Artisan commands provided by your application.
 *
 * @var array
 */
protected $commands = [
    Commands\DemoCron::class,
];

 

Creare risorsa Filament
Creazione Widget in Filament

Creazione Widget in Filament

Per creare un widget utilizzabile nelle pagine del pannello esegui ad esempio:

php artisan make:filament-widget RequestsChart --chart

E’ importante verificare che Filament individui correttamente gli widget automaticamente, verificando il file AdminPanelProvider.php dentro Providers/Filament. Deve esserci questo puntatore ->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\Filament\Widgets')

 

Eseguire un Seeder in Laravel

Eseguire un Seeder in Laravel

php artisan db:seed --class=NomeClasseSeeder

In questo modo si esegue le specifica classe indicata. Se si omette l’opzione della specifica della classe viene eseguita la classe di default DatabaseSeeder.php

Creare una nuova entità

Creare una nuova entità

Quando in Laravel abbiamo bisogno di aggiungere una nuova entità (p.e. i prodotti di un negozio) consiglio sempre di pensare al suo nome inglese perché Laravel gestisce automaticamente i plurali e riconosce i nome delle tabelle nelle foreign key…

php artisan make:model Product -m

Questo comando crea contemporaneamente 2 file:

  • app/Models/Product.php
  • database/migrations/xxxx_xx_xx_create_products_table.php

Come si vede creando il modello al singolare viene creata la tabella al plurale (se provi con un nome italiano viene uno… schifo ;(