Laravel - 服务提供商:未找到类

时间:2017-04-05 19:45:51

标签: php laravel service-provider

我今天在Laravel 5.4上启动了一个项目,并遇到了ServiceProvider问题。 在这里我的服务提供商:

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

我将此提供程序添加到config / app.php(App\Providers\WizamProvider::class)中,将我的自动加载器转储了20次,清除缓存,清除配置。什么都没发生。

我的路线:

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

当我去&#39; / sub&#39;时,我得到Class 'Wizam\Test' not found。我看不出我的错误,你能帮助我吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

要使用无法使用new命令实例化的容器,可以通过构造函数注入它

__constructor(\Wizam\Test $test)
{
}

或使用app(\ Wizam \ Test :: class)我认为是评论中提到的另一种方法。

答案 1 :(得分:0)

如果曾经有人收到错误消息,指出未找到您的界面(“未找到类”),请在关闭服务提供商的过程中,确保您的界面和类位于app /文件夹中。解决这个问题花了很多时间。祝你有美好的一天。
附言答案与主题无关,但是当我开始用Google搜索解决方案时,这个页面是我首先找到的,所以我请你把这个留在这里。