我在Symfony 3.3的服务中使用了一个参数,但我不断收到错误。
错误
[Symfony\Component\DependencyInjection\Exception\AutowiringFailedException]无法自动连线服务“AppBundle\service\ApiInterface”:方法“\uuu construct()”的参数“$api\u endpoint”必须具有类型提示或显式给定值。
config.yml
services:
app.security.login_form_authenticator:
class: AppBundle\Security\LoginFormAuthenticator
autowire: true
arguments: ['@doctrine.orm.entity_manager']
app.service.api_interface:
class: AppBundle\Service\ApiInterface
arguments:
$api_endpoint: "%endpoint test%"
_defaults:
autowire: true
autoconfigure: true
public: false
AppBundle\:
resource: '../../src/AppBundle/*'
exclude: '../../src/AppBundle/{Entity,Repository,Tests}'
AppBundle\Controller\:
resource: '../../src/AppBundle/Controller'
public: true
tags: ['controller.service_arguments']
Api接口。php
use Unirest;
class ApiInterface
{
private $api_endpoint;
public function __construct(string $api_endpoint)
{
$this->timeout = 1;
echo 'form apiinterface construct: ' . $api_endpoint;
}
任何感激的帮助都让我觉得自己在做一份简单的工作!
问题是您有两个不同的服务:app.service.api_interface
和AppBundle\Service\ApiInterface
。第一是配置好,第二不是。
如果您必须需要app.service.api_interface
服务,您可以更改您的配置,以便将第一个作为第二个的别名,如下所示:
app.service.api_interface: '@AppBundle\Service\ApiInterface'
AppBundle\Service\ApiInterface:
arguments:
$api_endpoint: "%endpoint test%"
通过配置,您不会配置AppBundle\Service\apinterface
服务,而是配置应用程序。服务api_接口
服务。根据我的建议,您可以配置这两个服务。
如果您不需要应用程序。服务api_接口
服务,您只能让一个服务:
AppBundle\Service\ApiInterface:
arguments:
$api_endpoint: "%endpoint test%"
此声明覆盖AppBundle\Service\apinterface
服务。您可以使用下面的id(类名)覆盖导入的任何服务:最好将此覆盖移动到AppBundle\
声明下面。
最终文件可以是这样的:
#app/config/services.yml
services:
_defaults:
autowire: true
autoconfigure: true
public: false
AppBundle\:
resource: '../../src/AppBundle/*'
exclude: '../../src/AppBundle/{Entity,Repository,Tests}'
AppBundle\Controller\:
resource: '../../src/AppBundle/Controller'
public: true
tags: ['controller.service_arguments']
app.security.login_form_authenticator: '@AppBundle\Security\LoginFormAuthenticator'
# autowire: true #Optional, already set in _defaults
# arguments: ['@doctrine.orm.entity_manager'] # Optional because of autowiring
app.service.api_interface: '@AppBundle\Service\ApiInterface'
AppBundle\Service\ApiInterface:
arguments:
$api_endpoint: "%endpoint test%"
文档:手动连接参数
文档:显式配置服务和参数
此外,我建议您删除参数名%endpoint test%
的空格(例如,将其重命名为%endpoint\u test%
)
我有一个片段a,包含一个片段B。 当片段A处于onActivityCreated生命周期中时,我想从片段A向片段B传递一个参数(因为我有一个来自viewmodel的数据,该数据此时到达)。 在我的片段B中,我无法得到这个论点。我有一个空异常。 你有办法解决我的问题吗? 这是我的代码 片段A 片段B fragment_a.xml
问题内容: 我正在尝试调用webservice方法并将参数传递给它。 这是我的网络服务方法: 这是我的目标C代码: 因此,当我致电GetHelloWorld时,它的效果很好,并且: 显示HelloWorld,但是如何调用GetHelloWorldWithParam?如何传递参数? 我尝试: 并将以下两行添加到请求中: 我有错误: 谢谢您的帮助!泰迪熊 问题答案: 我已经使用了您的代码并进行了一些修
我最近开始学习Swift,遇到了一个关于闭包的问题。我试图将开车的参数传递给func travel并收到错误消息:无法将类型'()'的值转换为预期的参数类型'()- 有人能善意地建议吗?赞赏!
问题内容: 我很好奇Go中是否有可能。我有多种方法的类型。是否可以有一个函数,该函数需要一个方法参数,然后将其称为类型? 这是我想要的一个小例子: Go认为type 有一个称为的方法,而不是用传入的方法名称替换它。 问题答案: 是的,有可能。您有2(3)个选项: 规范:方法表达式 该表达式产生的功能与第一个参数等效,但具有一个显式接收器。它有签名。 在这里,方法接收器是显式的。您只需将方法名称(具
问题内容: 我正在使用Go内置的http服务器,并拍拍来响应一些URL: 我需要向该处理函数传递一个额外的参数-一个接口。 如何向处理程序函数发送额外的参数? 问题答案: 通过使用闭包,您应该能够做您想做的事情。 更改为以下内容(未测试): 然后对
我在解一个有很多常数的非线性方程 我创建了一个用于解决以下问题的函数: 然后我想做: 但是正在解包并向函数传递太多参数,因此我得到: TypeError:terminalV()正好接受2个参数(给定6个) 那么,我的问题是,我是否可以通过某种方式将元组传递给调用的函数?