2017-04-05 12 views
0

今日私はLaravel 5.4でプロジェクトを開始し、ServiceProviderの問題が発生しました。 ここに私のサービスプロバイダ:Laravel - サービスプロバイダ:クラスが見つかりません

<?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; 
     }); 
    } 
} 

私は20回、キャッシュのクリア、クリアな設定のように私のオートローダをダンプし、設定/ app.php(App\Providers\WizamProvider::class)にこのプロバイダを追加しました。何も起こらなかった。ここで

は私のルート:私は '/サブ' に行くとき

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

、私はClass 'Wizam\Test' not foundを得ました。私は私のエラーを見ることができない、あなたは私を助けることができますか?

ありがとうございます!

+0

あなたのクラスのオートローディングを 'composer.json'でセットアップしましたか?また、コンテナコールを使用する場合は、代わりに以下のようにします: 'app(\ Wizam \ Test :: class)' –

+0

既存クラスの場合はい!それは技術的に存在しないので私は\ Wizamのためにそれをしなかった。 – Treast

+0

感謝します! 'app(\ Wizam \ Test :: class)'はうまく動作します!!! – Treast

答えて

0

新しいコマンドを使用してインスタンス化することはできませんコンテナを使用するには、コンストラクタ

__constructor(\Wizam\Test $test) 
{ 
} 

やアプリを使ってそれを注入するか(\ Wizam \テスト::クラス)私は信じているが、他の方法です。コメントに記載されているようにそれを行う。

関連する問題