扩展操作参数解决

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 4.1,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

扩展操作参数解决

控制器指南,你知道你可以得到的请求在你的控制器对象通过一个参数。这个论点是type-hinted的请求类为了得到认可。这是通过的ArgumentResolver。通过创建和注册自定义参数值解析器,您可以扩展此功能。

HttpKernel附带的功能

ob娱乐下载Symfony附带五值解析器HttpKernel组件:

RequestAttributeValueResolver
试图找到一个匹配的请求属性的名称参数。
RequestValueResolver
注入电流请求如果type-hinted请求或一个类扩展请求
ServiceValueResolver
注入服务如果type-hinted有效服务类或接口。这就像自动装配
SessionValueResolver
注入配置会话类扩展SessionInterface如果type-hintedSessionInterface或一个类扩展SessionInterface
DefaultValueResolver
将默认值的参数如果现在和参数是可选的。
VariadicValueResolver
如果请求验证数据是一个数组,并将他们添加到参数列表。调用操作时,最后(可变)参数将包含所有这个数组的值。

添加一个自定义值解析器

在下一个示例中,您将创建一个值解析器注入的对象代表当前用户只要控制器类型提示一个论点的方法用户类:

1 2 3 4 5 6 7 8 9 10 11 12
名称空间应用程序\控制器;使用应用程序\实体\用户;使用ob娱乐下载\组件\HttpFoundation\响应;用户控件{公共函数指数(用户美元用户){返回响应(“你好”美元用户- >getUsername ()。“!”);}}

注意,这个功能已经提供的@ParamConverter从SensioFrameworkExtraBundle注释。如果你有包安装在您的项目中,添加这个配置禁用type-hinted方法的自动转换参数:

  • YAML
  • XML
  • PHP
1 2 3 4 5
#配置/包/ sensio_framework_extra.yamlsensio_framework_extra:要求:转换器:真正的auto_convert:

添加一个新值impleme解析器需要创建一个类