MENU
Errori Laravel: Guida Completa alla Risoluzione di Tutti gli Errori (2025)

Laravel è uno dei framework PHP più popolari per lo sviluppo web, ma come ogni strumento complesso può presentare errori che, se non adeguatamente compresi, rischiano di rallentare significativamente lo sviluppo.

Questo articolo raccoglie le soluzioni ai problemi più comuni che gli sviluppatori incontrano durante lo sviluppo con Laravel, dalle questioni di configurazione base come chiavi di crittografia e permessi, fino a errori più complessi legati al routing e alla gestione delle variabili.

Per ogni errore, forniamo il messaggio completo, una spiegazione chiara del problema e i passaggi dettagliati per risolverlo, permettendovi di superare rapidamente questi ostacoli tecnici.

1. No application encryption key has been specified

Errore completo:

No application encryption key has been specified. Your application will not be able to safely store encrypted values

Soluzione:

  1. Esegui il comando php artisan key:generate
  2. Verifica che nel file .env sia presente la chiave APP_KEY
  3. Se il problema persiste, cancella la cache php artisan config:clear

2. The only supported ciphers are AES-128-CBC and AES-256-CBC

Errore completo:

The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths

Soluzione:

  1. Verifica la lunghezza della chiave in .env
  2. Rigenera la chiave php artisan key:generate --force

3. SQLSTATE[HY000] [2002] Connection refused

Errore completo:

SQLSTATE[HY000] [2002] Connection refused

Soluzione:

  1. Verifica le credenziali nel file .env:
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

  1. Controlla che MySQL sia in esecuzione
  2. Prova a usare localhost invece di 127.0.0.1

4. Class XYZ not found durante la migrazione

Errore completo:

Class XYZ not found during migration

Soluzione:

  1. Composer dump-autoload composer dump-autoload
  2. Cancella la cache:
php artisan clear-compiled
php artisan cache:clear

5. The bootstrap/cache directory must be present and writable

Errore completo:

The bootstrap/cache directory must be present and writable

Soluzione:

  1. Crea la directory se non esiste mkdir bootstrap/cache
  2. Imposta i permessi chmod -R 775 bootstrap/cache

6. Unable to create the storage/logs directory

Errore completo:

Unable to create the storage/logs directory "permission denied"

Soluzione:

  1. Imposta i permessi corretti:
chmod -R 775 storage
chown -R www-data:www-data storage

7. Route [XYZ] not defined

Errore completo:

Route [XYZ] not defined.

Soluzione:

  1. Verifica di aver incluso il nome della rotta corretta in routes/web.php
Route::get('/rotta-', function(){
	return view('welcome');
})->name('XYZ');

8. View [xyz] not foun

Errore completo:

View [xyz] not found

Soluzione:

  1. Verifica il percorso della view resources/views/xyz.blade.php
  2. Controlla la sintassi nel controller:
return view('xyz');  // per xyz.blade.php
return view('folder.xyz');  // per folder/xyz.blade.php

9. Missing required parameter

Errore completo:

Missing required parameter for [Route: xyz] [URI: user/{id}]

Soluzione:

  1. Verifica di passare tutti i parametri richiesti nella rotta
  2. Controlla la sintassi nel controller:
// Controller
public function show($id) {
    // ...
}

// View/Blade
route('user.show', ['id' => $userId])

10. MethodNotAllowed

Errore completo:

MethodNotAllowedHttpException in RouteCollection.php

Soluzione:

  1. Verifica che il metodo HTTP (GET, POST, etc.) corrisponda alla definizione della rotta
  2. Aggiungi il metodo corretto nel file routes:
Route::post('/form', 'Controller@method');  // invece di Route::get()

  1. Per form, verifica di aver incluso @method se necessario:
@method('PUT')
@method('DELETE')

11. HttpExceptionNotFoundHttpException

Errore completo:

NotFoundHttpException in RouteCollection.php

Soluzione:

  1. Verifica che la rotta esista in routes/web.php o routes/api.php
  2. Controlla eventuali middleware che potrebbero bloccare l’accesso
  3. Esegui php artisan route:list per vedere tutte le rotte disponibili

12. 419 Error / Page Expired

Errore completo:

419 Page Expired

Soluzione:

  1. Aggiungi il token CSRF nel form:
@csrf

Se non sei riuscito a risolvere con questo suggerimento, puoi consultare la guida dettagliata al problema.

13. File Permission for storage

Errore completo:

The stream or file "storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied

Soluzione:

  1. Imposta i permessi corretti:
chmod -R 775 storage bootstrap/cache
chown -R $USER:www-data storage bootstrap/cache

14. ReflectionException / Class does not exist

Errore completo:

ReflectionException: Class App\\Http\\Controllers\\XYZController does not exist

Soluzione:

  1. Esegui composer dump-autoload
  2. Verifica il namespace del controller
  3. Controlla che il nome della classe corrisponda al nome del file

15. 500 Error

Errore completo:

500 Internal Server Error

Soluzione:

  1. Controlla i log in storage/logs/laravel.log
  2. Abilita il debug in .env:
APP_DEBUG=true

  1. Verifica permessi file e cartelle
  2. Controlla la connessione al database

16. Undefined variable

Errore completo:

Undefined variable: $nome_variabile

Soluzione:

return view('view', ['nome_variabile' => $value]);

17. Undefined index

Errore completo:

Undefined index: keyName

Soluzione:

  1. Usa l’helper isset() o array_key_exists()
  2. Utilizza l’operatore null coalescing:
$value = $array['key'] ?? 'default';

18. Class Not Found

Errore completo:

Class 'App\\Models\\User' not found

Soluzione:

  1. Verifica il namespace della classe
  2. Controlla l’import nella parte superiore del file
  3. Esegui composer dump-autoload

19. Target class controller does not exist

Errore completo:

Target class [Controller] does not exist.

Soluzione:

  1. Verifica il namespace del controller
  2. Controlla la sintassi nel file routes:
use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);

Leaving FrancescoMansi Your about to visit the following url Invalid URL

Loading...
Commenti


Commento creato.
Effettua il login per commentare!