サービスコンテナがLaravelでどのように機能するかをよりよく理解しようとしています。だから私はサービスがあなたがLaravelによってセットアップされたものを使用したいものを持っているのに使われていることを知っていますよね?コントローラのサービスプロバイダを解決するには?
私はLDAP php組み込み関数を使って簡単な例を作ろうとしています。私は私の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'を使いたいと思うし、サービスプロバイダの設定ファイル' config/app.php'にldapを追加する必要があります。 https://laravel.com/docs/5.3/providers – bassxzero
このコードブロックは既にサービスプロバイダを登録していますか? AppServicePRoviderは既にデフォルトで読み込まれていますか? –
このメソッドは、アプリケーションインスタンスにバインディングを登録するためのメソッドです。既にサービスプロバイダのインスタンスが必要です。コードを見ずに説明するのは難しいです。つまり、Laravelがブートストラップ中にサービスプロバイダを作成するときに、作成するサービスプロバイダを指定する必要があります。 – bassxzero