2017-11-06 4 views
1

liebe die Ressourcen-Funktion in Laravel 5.5, die auf Ressourcen hübscher für ein Modell erstellt, aber ich habe alle meine Modelle in /App/Models/* statt direkt in der App/*-Ordner gespeichert. Dies führt dazu, dass App/Http/Resources/* nicht funktioniert.Verwenden Sie verschiedene Namespaces-Modelle für Ressourcen in Laravel 5.5

Ergebnisse in einem "Undefined property: Illuminate\Database\Query\Builder::$map"

Dies wird verursacht, weil ich meine Modelle in einem anderen Ordner gespeichert, die er nicht durch Raten zuordnen.

Wo und wie definiert man die unterschiedliche Platzierung des Modells?

+0

Absolut keine Notwendigkeit, meine Antwort zu stimmen. Ich habe Sie bezüglich der von Ihnen geposteten Frage in die richtige Richtung gelenkt. –

Antwort

-1

Nicht sicher des Prozesses Sie die Modelle der neuen Models Verzeichnis verschieben verwendet, so überprüfen Sie ein paar Dinge:

Namespace der Modelle

Jedes Modell hat:

namespace App\Models; 

Überprüfen Sie die Referenzen in diesen Dateien

  • app/Http/Controller/Auth/RegisterController.php
  • config/Auth.php
  • config/services.php
  • Datenbank/Fabriken/ModelFactory.php
  • Ihr Controller

Und App/ModelExample zu App/Models/ModelExample

-Update automatisch geladen classmap ändern

hinzufügen "app/model" zu classmap Autoload-Bereich von composer.json

"autoload": { 
    "classmap": [ 
     "database", 
     "app/models" 
    ] 
} 

Autoload-Dateien

Run composer dump-autoload

+0

Nein, das ist wirklich nicht die Punkte. Modelle arbeiten. Abgesehen davon, dass die neue FoobarResource eine '\ App \ Foobar' erwartet, aber ich habe mein Modell in \ App \ Models \ Foobar ' – user1469734

+0

Haben Sie 'composer dump-autoload' ausgeführt? – kerrin

0

Für das, was ich Ihr Problem müssen Sie verstehen, spritzen Die Modellinstanz im Ressourcenkonstruktor gibt es keine magische automatische Bindung, dh:

use App\Models\User; 
use App\Http\Resources\User as UserResource; 

Route::get('/user', function() { 
    return new UserResource(User::find(1)); 
}); 

Ich sehe hier kein Problem, auch mit Namespace-Modellen.