我今天在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
。我看不出我的错误,你能帮助我吗?
谢谢!
答案 0 :(得分:0)
要使用无法使用new命令实例化的容器,可以通过构造函数注入它
__constructor(\Wizam\Test $test)
{
}
或使用app(\ Wizam \ Test :: class)我认为是评论中提到的另一种方法。
答案 1 :(得分:0)
如果曾经有人收到错误消息,指出未找到您的界面(“未找到类”),请在关闭服务提供商的过程中,确保您的界面和类位于app /文件夹中。解决这个问题花了很多时间。祝你有美好的一天。
附言答案与主题无关,但是当我开始用Google搜索解决方案时,这个页面是我首先找到的,所以我请你把这个留在这里。