2016-07-23 9 views
0

Ich versuche, meine App ein wenig besser zu organisieren, indem ich Modelle und Controller in Unterverzeichnisse stelle. Ich dachte, es sei egal, ob sie sich in Unterverzeichnissen befanden, solange der Namespace korrekt ist, aber jetzt, wo ich sie verschoben habe, bekomme ich eine Klasse nicht gefunden Fehler.Laravel 5: Organisierte Modelle im Unterverzeichnis nicht gefunden

Ich habe versucht, composer dumpautoload mehrmals ausgeführt, aber es funktioniert immer noch nicht.

Hier ist meine Verzeichnisstruktur:

  • App
  • Modelle
    • Manager
      • EntryStructure.php
      • FieldManager.php
  • Controller
    • EntryControllers.php

Da ich die Managers und bewegt diese beiden Modelle neue Verzeichnis dort gemacht haben, wenn ich die Referenz FieldManager Klasse von EntryStructure, Ich bekomme den nicht gefundenen Fehler.

-Code in EntryStructure.php:

namespace Pascall\ICMS\Models; 

use Pascall\ICMS\Models\FieldManager; 

class EntryStructure 
    { 
    function index(){ 
     new FieldManager(); // class not found 
    } 
    } 

-Code in FieldManager.php:

namespace Pascall\ICMS\Models; 

class FieldManager { 
    //  
} 

Warum ist es nicht die FieldManager Klasse zu finden, wenn es explizit in der use Anweisung verwiesen wird und sie gemeinsam nutzen der gleiche Namensraum?

Antwort

0

Wenn Ihre Modelle Verzeichnis mit den PSR-4 Spezifikationen folgen, der Namensraum in den beiden Klassen sollte die Klassendatei Pfad folgen, so soll es sein:

namespace Pascall\ICMS\Models\Managers; 

Dann in EntryStructure Klasse sollten Sie verwenden:

use Pascall\ICMS\Models\Managers\FieldManager; 
0

Ihre Nutzung sollte
use Pascall\ICMS\Models\Managers\FieldManager;
sein statt
use Pascall\ICMS\Models\FieldManager;