Risolviamo l’errore Models not found di laravel 5 dovuto all’importazione di models da laravel 4
Durante la migrazione da laravel 4 a 5 capita spesso che i vostri model usati con Eloquent smettano di funzionare restituendo errore not found o Model non impostato. La spiegazione è semplice: laravel 5 usa i Middleware e namespaces vari per gestire praticamente tutto il workflow; Questo comporta che per “migrare” i vecchi Models dobbiamo aggiungere qualche stringa di codice extra. Niente paura nulla di complesso, tuttavia ho trovato questa scelta da parte dei developer di laravel poco arguta…
Metodo di migrazione principale
Step 01
Copiate i vostri vecchi models in una cartella a vostra scelta ad esempio “app/Models”
Step 02
Editate i vostri file aggiungendo all’inizio:
namespace App\Models; use Eloquent; //Da qui tutto uguale a prima class Video extends Eloquent {
Step 03
Nel controller – o piu in generale dove richiamate eloquent –
<?php namespace App\Http\Controllers; use App\Models\Video; use Illuminate\Support\Facades\View; //Controller come siete abiutati
Alternativa 01
Una strategia utile, nel caso abbiate pochi models è quella di “generare” i models con artisan. Per farlo digitate da terminale:
php artisan make:model NomeDelModel
Verrà creato un file dentro la cartella “App”. A questo punto vi basterà mettere la tabella pre-esistente dentro il models per poterlo usare dentro i vostri controller:
protected $table = 'tua_tabella_db';
NOTA: in questo caso nel controller dovrete usare use App\Video al posto di use App\Models\Video in quanto artisan genera i models non piu nella rispettiva cartella ma direttamente dentro App (Scelta più che discutibile).
Alternativa 02
In alcuni casi andando da terminale e digitando il comando “composer dump-autoload” alcuni utenti hanno fixato automaticamente.
Altre informazioni utili Laravel 5 Eloquent
Questo articolo ti è stato utile? Condividilo e aiuta altre persone!