2017-11-02 4 views
1

Ich habe von Laravel 5.3 auf 5.4 aktualisiert. Jetzt bekomme ich Reflexion Ausnahmeklasse eloquent.saving: App \ model_name existiert nicht. Alles andere sieht gut aus und funktioniert gut. Ich kann es abfragen, abrufen, in einem Vue-Browser anzeigen lassen - nur das Speichern ist passend. Und es passiert mit jedem Modell und ihren jeweiligen Controllern.Laravel 5.3 -> 5.4 Reflexion Ausnahme

Beispiel mit dem einfachstenen Modell:

Modell

namespace App; 
use Illuminate\Database\Eloquent\Model; 

class Bank extends Model 
{ 
    protected $guarded = ['id']; 
} 

-Controller

namespace App\Http\Controllers; 

use App; 
use App\Bank; 
use Illuminate\Http\Request; 

class TestController extends Controller 
{ 

    public function test1(Request $request) { 

    /** @var \App\Bank $bank */ 
    // get record 
    $bank = Bank::first(); 
    // change data 
    $bank->bic = "xxx"; 
    // dump it - looks ok 
    dump($bank); 
    // this throws reflection error 
    $bank->save(); 

    } 
} 

Kein benutzerdefinierter Code wird geändert. Nur das Upgrade (und entsprechende Änderungen von Upgrade Guide + Tinker wurde hinzugefügt). Ich habe den Cache gelöscht, die kompilierten Ansichten gelöscht, die Optimierung durchgeführt, dump-autoload ... das funktioniert. Dies ist ein mittlerer Schritt bis Laravel 5.5. Das gleiche passiert, wenn ich direkt auf Version 5.5 aktualisiere. Keine Ahnung, wo ich anfangen soll.

Update von Kommentaren:

ein neues Objekt anlegen wirft Ausnahme Kohlenstoff. Das Setzen von $ timestamps = false im Modell beseitigt den Carbon-Fehler und ich kann ein neues Modell erstellen und speichern. Wenn ich jedoch denselben Datensatz finde und versuche, ihn zu speichern, erhalte ich die Reflektionsausnahme erneut.

aktualisieren

Wenn ich auf 5,3 Herabstufung zurück, sofort zu arbeiten beginnt alles.

+1

Können Sie neu verursachen, oder erhalten Sie den gleichen Fehler? – kerrin

+1

Sind deine Modelle definitiv im Stammverzeichnis des App-Ordners? 'Namespace App;' – kerrin

+0

@ Kerrin. Ja, die Modelle sind an der richtigen Stelle. Auf den zweiten Kommentar ... wir kommen irgendwo hin. Ich habe noch nicht versucht, einen zu erstellen. Wenn es versucht, neue Bank() zu tun, erhalte ich Carbon-Fehler: DateTime :: __ construct(): Zeitstring konnte nicht analysiert werden ( Corwin

Antwort

1

Es gab ein Ereignis im EventServiceProvider, das "eloquent.saving" angehört hat - und völlig vergessen wurde. Es gab eine Änderung in, wie Ereignisse gehandhabt werden in 5.4 (über Laracast Talinon)

Verwandte Themen