我试图更好地理解服务容器如何在Laravel中工作。所以我知道服务已经有了你想使用的Laravel设置的东西,对吧?如何解决控制器中的服务提供者?
我想使用LDAP内置函数做一个简单的例子。我有这个在我的AppServiceProvider.php
:
public function register()
{
$this->app->bind('ldap', function() {
$conn = ldap_connect(env('LDAP_HOST'));
ldap_bind($conn, env('LDAP_BIND'), env('LDAP_PWD'));
return $conn;
});
}
然后在我的控制,我想$ldap = resolve('ldap');
但它不工作,它说resolve
不存在。我已经试过$this->app->make
。我将如何恢复我的LDAP连接?
我想你要使用'$ this-> app-> make',你需要将ldap添加到你的服务提供者配置文件'config/app.php'中。 https://laravel.com/docs/5.3/providers – bassxzero
但不是这块代码已经注册服务提供商? AppServicePRovider默认已加载,不是吗? –
该方法用于注册与应用程序实例的绑定,它要求您已经有服务提供者的实例。没有看代码就很难解释。简而言之,当Laravel在引导期间为您创建服务提供商时,但您必须告诉它要创建哪些服务提供商。 – bassxzero