flash() non basta: il messaggio sta nel telaio della pagina, e * dopo un'azione Livewire ridisegna solo il componente. L'avviso compariva * solo al caricamento completo successivo, fuori contesto, e un salvataggio * rifiutato sembrava riuscito. Qui l'avviso parte come evento del browser e * lo raccoglie nel telaio, che resta sempre in pagina. */ trait Avvisa { protected function avvisa(string $testo, string $tipo = 'ok'): void { $this->dispatch('avviso', tipo: $tipo === 'errore' ? 'errore' : 'ok', testo: $testo); } protected function avvisaErrore(string $testo): void { $this->avvisa($testo, 'errore'); } }