2016-11-10 4 views
1

Ich versuche, die Klasse HotelsTransformer ohne Erfolg mit dem nächsten Code zu injizieren:Laravel Reflection in Controller-

UserTransformer

<?php 
namespace App\Transformers; 

class UserTransformer extends Transformer 
{ 
    ... 
} 

HotelsTransformer

<?php 
namespace App\Transformers; 

class HotelsTransformer extends Transformer 
{ 
    ... 
} 

Ap iHotelsController

<?php 

namespace App\Http\Controllers\Api; 

use Illuminate\Http\Request; 

use App\Http\Requests; 
use App\Http\Controllers\Controller; 

use \App\Hotel; 
use \App\Transformers\HotelsTransformer; 

class ApiHotelsController extends ApiController 
{ 
    protected $HotelsTransformer; 

    public function __construct(HotelsTransformer $HotelsTransformer) 
    { 
     $this->HotelsTransformer = $HotelsTransformer; 
     dd($this->HotelsTransformer); 
    } 

Als ich UserTransformer injizieren, es ist alles in Ordnung, aber wenn ich mit HotelsTransformern ändere UserTransformer es wirft mir diesen Fehler.

enter image description here

Ich weiß nicht, warum das passiert ist, weil ich UserTransformer geklont und seinen Namen ändern, aber derselbe Fehler weiterhin bestehen bleibt.

+0

Haben Sie den Ordnernamen für Ihre HotelsTransformer-Klasse mit Ihrem Namensraum überprüft? Sonst sollte es funktionieren. –

Antwort

0

Überprüfen Sie Ihren folgenden Namespace. Möglicherweise ist es nicht vorhanden oder der Namespacepath ist nicht korrekt

+0

Entschuldigung, ich habe die Namensräume eingefügt, aber der kühne Stil hat sie versteckt. Namespaces scheint in Ordnung zu sein. – suarsenegger

0

Versuchen Sie, den Befehl composer dumpauto auszuführen.

+0

Ich versuchte es vorher, aber nein. – suarsenegger

0

versuchen, diese Befehle von Ihrem Terminal (aus dem Stammverzeichnis Ihres Projekts) laufen

// use sudo if it asks for the root permission 
composer update 
composer dump-autoload 
php artisan config:clear 

Rerun die app/Projekt und versuchen Sie es erneut.

Diese 2 Befehle aktualisieren die vom Composer geladenen Klassen und löschen den Cache, um das Projekt neu zu starten. Hoffe, es hilft!

0

Ok, habe ich es gelöst, der Dateiname falsch war, verändert: app/Transformers/HotelsTranformer.php zu: app/Transformers/HotelsTranformer.php

1 Stunde, dass verbrachte wie ein verrückter, guter Job.