2017-04-05 4 views
0

Ich habe heute ein Projekt auf Laravel 5.4 gestartet und habe ein ServiceProvider-Problem. mein Dienstleister hier:Laravel - Dienstanbieter: Klasse nicht gefunden

<?php 

namespace App\Providers; 

use Illuminate\Support\ServiceProvider; 

class WizamProvider extends ServiceProvider 
{ 
    /** 
    * Bootstrap the application services. 
    * 
    * @return void 
    */ 
    public function boot() 
    { 
     //die('YESSS'); 
    } 

    /** 
    * Register the application services. 
    * 
    * @return void 
    */ 
    public function register() 
    { 
     $this->app->bind('Wizam\Test', function() 
     { 
     if(class_exists("Domains\Domomat\Test")) 
      return new \Domains\Domomat\Test; 
     else 
      return new \Core\Classes\Test; 
     }); 
    } 
} 

ich diesen Anbieter in config/app.php (App\Providers\WizamProvider::class) hinzugefügt, Dump meine Autoloader wie zwanzigmal, klar Cache, clear config. Nichts ist passiert.

Hier meine Route:

Route::get('/sub', function() 
{ 
    $test = new \Wizam\Test(); 
    echo $test->render(); 
}); 

Wenn ich auf '/ sub', ich habe Class 'Wizam\Test' not found. Ich kann meinen Fehler nicht sehen, kannst du mir helfen?

Danke!

+0

Haben Sie Autoloading für Ihre Klassen in Ihrem 'composer.json' eingerichtet? Wenn Sie den Container verwenden möchten, rufen Sie ihn stattdessen wie folgt auf: 'app (\ Wizam \ Test :: class)' –

+0

Für vorhandene Klassen ja! Ich habe es nicht für \ Wizam gemacht, weil es technisch nicht existiert. – Treast

+0

DANKE !! 'app (\ Wizam \ Test :: class)' funktioniert gut !!! – Treast

Antwort

0

Um den Behälter verwenden Sie können mit dem neuen Befehl nicht instanziiert, können Sie entweder durch das

__constructor(\Wizam\Test $test) 
{ 
} 

oder mit der App (\ Wizam \ Test :: Klasse) Konstruktor injizieren ich glaube, ist der andere Weg um es wie in den Kommentaren erwähnt zu tun.

Verwandte Themen