扩展操作参数解决
编辑该页面警告:你浏览的文档欧宝官网下载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解析器需要创建一个类