Skip to content

"Comuni Italiani" è un package per Laravel 11 che facilita la selezione dinamica di regioni, province e comuni italiani tramite componenti Livewire.

License

Notifications You must be signed in to change notification settings

dariob/laravel-comuni-italiani

Repository files navigation

Comuni Italiani per Laravel

Package Laravel per la selezione di regioni, province e comuni italiani utilizzando componenti Livewire.

Installazione

composer require dariobarila/comuni-italiani

Configurazione

  1. Pubblica le migrazioni:
php artisan vendor:publish --tag=comuni-italiani-migrations
  1. Pubblica il file di configurazione (opzionale):
php artisan vendor:publish --tag=comuni-italiani-config
  1. Esegui le migrazioni:
php artisan migrate
  1. Importa i dati dei comuni:
php artisan comuni-italiani:importa

Utilizzo

Componenti Livewire

Il package fornisce tre componenti Livewire che si aggiornano automaticamente in cascata:

  1. Selettore Regione:
<livewire:selettore-regione />
  1. Selettore Provincia (si aggiorna quando cambia la regione):
<livewire:selettore-provincia />
  1. Selettore Comune (si aggiorna quando cambia la provincia):
<livewire:selettore-comune />

Esempio di Utilizzo Completo

<?php

namespace App\Livewire;

use Livewire\Component;
use Livewire\Attributes\On;

class SelezioneComuni extends Component
{
    public $datiRegione = [];
    public $datiProvincia = [];
    public $datiComune = [];

    #[On('comuni-italiani::selezione-completa')]
    public function selezioneDatiCompleta($data)
    {
        $this->datiRegione = $data['regione'];
        $this->datiProvincia = $data['provincia'];
        $this->datiComune = $data['comune'];
    }

    public function render()
    {
        return view('livewire.selezione-comuni');
    }
}
<div>
    <form>
        <livewire:selettore-regione />
        <livewire:selettore-provincia />
        <livewire:selettore-comune />
    </form>

    @if(!empty($datiComune))
        <h3>Selezione completa:</h3>
        <ul>
            <li>Regione: {{ $datiRegione['nome'] }}</li>
            <li>Provincia: {{ $datiProvincia['nome'] }} ({{ $datiProvincia['sigla'] }})</li>
            <li>Comune: {{ $datiComune['nome'] }}</li>
        </ul>
    @endif
</div>

Eventi Livewire

Quando viene completata una selezione (cioè quando viene selezionato un comune), il package emette l'evento comuni-italiani::selezione-completa con tutti i dati della selezione:

[
    'regione' => [
        'id' => 3,
        'nome' => 'Lombardia',
        'codice_istat' => '03',
    ],
    'provincia' => [
        'id' => 15,
        'nome' => 'Milano',
        'sigla' => 'MI',
        'codice_istat' => '015',
    ],
    'comune' => [
        'id' => 15146,
        'nome' => 'Milano',
        'codice_istat' => '015146',
        'codice_catastale' => 'F205',
    ],
]

Utilizzo in Form HTML

I componenti possono essere utilizzati anche in form HTML tradizionali. Ogni select ha un attributo name corrispondente (regione, provincia, comune):

<form method="POST" action="/salva-comune">
    @csrf
    <livewire:selettore-regione />
    <livewire:selettore-provincia />
    <livewire:selettore-comune />
    <button type="submit">Salva</button>
</form>

Personalizzazione dello Stile

È possibile personalizzare le classi CSS dei componenti modificando il file di configurazione config/comuni-italiani.php:

return [
    'component_classes' => [
        'select' => 'form-select',
        'label' => 'form-label',
        'wrapper' => 'mb-3',
    ],
];

Aggiornamento dei Dati

Per aggiornare i dati dei comuni con quelli più recenti dal sito ISTAT, esegui:

php artisan comuni-italiani:importa

Licenza

Il package è rilasciato sotto licenza MIT. Vedere il file LICENSE per maggiori dettagli.

Autore

About

"Comuni Italiani" è un package per Laravel 11 che facilita la selezione dinamica di regioni, province e comuni italiani tramite componenti Livewire.

Resources

License

Stars

Watchers

Forks

Packages

No packages published