2017-04-05 57 views
0

我今天在Laravel 5.4上啓動了一個項目,並且遇到了ServiceProvider問題。 這裏我的服務提供商:Laravel - 服務提供者:Class not found

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

我加入這個供應商到配置/ 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 \測試::類),我認爲這是另一種方式按照評論中提到的那樣去做。