【问题标题】:Elasticsearch serivce not found找不到 Elasticsearch 服务
【发布时间】:2018-09-05 17:25:07
【问题描述】:

我正在尝试将 elasticsearch 集成到我的 symfony 应用程序中。但我在互联网上找不到任何合适的例子。现在我收到此服务未找到错误:

Service "fos_elastica.finder.inscriptions.inscription" not found:即使它存在于应用程序的容器中,但 "App\Controller\SearchController" 内的容器是一个较小的服务定位器,只知道 "doctrine"," form.factory”、“http_kernel”、“request_stack”、“router”、“security.authorization_checker”、“security.csrf.token_manager”、“security.token_storage”、“serializer”、“session”、“模板”和“树枝”服务。除非您需要额外的懒惰,否则请尝试使用依赖注入。否则,您需要使用“SearchController::getSubscribedServices()”声明它。

为:

$finder = $this->container->get('fos_elastica.finder.inscriptions.inscription');

作为:

Symfony\Component\DependencyInjection\Exception\ ServiceNotFoundException

由于使用 Symfony 的经验不足,我不知道如何解决这个问题。有谁知道如何在 Internet 上使用 Symfony 解决这个问题或任何 Elasticsearch 示例? 谢谢!

【问题讨论】:

  • 你有很多例子here 用于symfony 应用程序。只需按 ctrl+f symfony.

标签: symfony elasticsearch


【解决方案1】:

在您的 config/services.yaml 文件中,您必须将此服务绑定为您的控制器的参数,如下所示:

App\Controller\SearchController:
    bind:
        $finder: '@fos_elastica.finder.inscriptions.inscription'

然后你可以通过自动装配注入它在你的控制器中使用它:

public function index($finder) {
    // your code here
}

有关详细信息,请参阅documentation

【讨论】:

  • 谢谢!我可以将它作为服务和请求连接,所以你的代码解决了我的问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-23
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多