Laravel 5: Errore con models migrati da laravel 4

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!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Bloccare caricamento pagina web by marco ingraiti
Up Next:

Bloccare caricamento pagina per Cookie Policy

Bloccare caricamento pagina per Cookie Policy