当前位置: 首页 > 知识库问答 >
问题:

Symfony2中的服务功能

陈兴朝
2023-03-14

我在数据库中存储了一个字符串,希望从应用程序中的不同位置访问该字符串。我发现最好的解决方案是创建一个函数,从数据库中获取该字符串并将其注册为服务。

功能:

public function shopUrlAction()
{ 
  return new Response($this->getDoctrine()->getRepository('AppBundle:Settings')->find(1)->getName());
}

service.yml

services:
  app.default_controller:
    class: AppBundle\Controller\DefaultController

其他控制器中的输出:

$return['base_url'] = $this->forward('app.default_controller:shopUrlAction');

不幸的是,我不断地

严重-未捕获的PHP异常Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException:“您请求了一个不存在的服务”应用程序。默认控制器“”at/app/bootstrap。php。缓存行2099上下文:{“异常”:“对象(Symfony\Component\DependencyInjection\exception\ServiceNotFoundException)”}

我清除了缓存。

共有1个答案

姬雪松
2023-03-14

正如我从你的问题中看到的,你有服务。yml而不是服务。yml(复数形式)。

您应该将您的service.yml包含在mainconfig.yml导入部分中,或者使用标准路径(AppBundle/Resources/config/services.yml

 类似资料:
  • 问题内容: 这个问题始于我不理解为什么不能将变量传递给symfony2全局帮助器函数(服务)的原因,但是由于比我聪明的人,我意识到我的错误是关于试图从没有使用该类的类中使用security_context。没有注射吗… 这是最终结果,该代码有效。我发现没有更好的方法可以使此方法对社区有所帮助。 这是从symfony2的全局函数或帮助函数中从security_context获取用户和其他数据的方法。

  • 当我执行时,我的服务按预期列出,但当我从web或通过功能测试访问我的包时,我得到: 未捕获的PHP异常Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException:“您请求了一个不存在的服务”xx。处理程序”在xx/app/bootstrap。php。缓存行2031{“异常”:“[对象](Symfony\Compo

  • 小结:我想在测试中使用模块断言。 之前,我使用PHPUnit测试了Symfony2服务。这没关系,但我想使用Codeception Symfony2模块提供的一些功能以及更干净的测试风格。 我使用以下服务创建了一个新套件。suite.yml 我运行了构建和生成: cest,并有一个ServiceCest.php测试文件 此测试通过,因为我在serviceheloper.php文件中添加了断言函数。

  • 我试图设置一个细枝过滤器,其工作方式如下:{{entities | fieldnames}},该过滤器将返回一个包含实体对象的属性名称的数组。我的问题是,经过几个小时的阅读和尝试,我无法执行$this- 错误:对/Users/a77/Dropbox/06中的非对象调用成员函数get()。Proyectos/2011 U-Vox/DEV U-Vox/Uvox Web/src/Acme/DemoBun

  • 我创建了下一个类: 我在我的服务中声明它是一项服务。yml 在我的控制器中,调用服务: 电子邮件已发送,但页面仍在加载30秒,我有一个来自开发人员工具栏的警报:加载Web调试工具栏时发生错误(404:未找到)。您想打开分析器吗?如果接受消息,Symfony分析器不显示任何错误。如果取消,消息开发人员工具栏不会出现。 我做错了什么? 非常感谢。

  • 本文向大家介绍python3实现ftp服务功能(服务端 For Linux),包括了python3实现ftp服务功能(服务端 For Linux)的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python3实现ftp服务功能的具体代码,供大家参考,具体内容如下 功能介绍: 可执行的命令: ls pwd cd put rm get mkdir 1、用户加密认证 2、允许多用户同时登陆