Dev*_*per 1 symfony symfony-3.4
services.yml
services:
_defaults:
autowire: true
autoconfigure: true
public: true
Run Code Online (Sandbox Code Playgroud)
控制器:
/**
* @Security("has_role('ROLE_USER')")
* @Route("/", name="homepage")
*/
public function indexAction(ContactService $contactService)
{
Run Code Online (Sandbox Code Playgroud)
错误
:indexAction()" requires that you provide a value for the "$contactService" argument.
Run Code Online (Sandbox Code Playgroud)
我对本示例工作应采取的措施(向控制器方法自动注入服务)
在services.yaml文件中,您缺少两件事:
App\:
resource: '../src/*'
App\Controller\:
resource: '../src/Controller'
tags: ['controller.service_arguments']
Run Code Online (Sandbox Code Playgroud)
第一行告诉Symfony使src /中的类可用作服务。这将为每个类创建一个服务,其ID为完全限定的类名。
对于第二行,控制器是单独导入的,以确保即使不扩展任何基本控制器类,也可以将服务作为操作参数注入。
https://symfony.com/doc/current/service_container/3.3-di-changes.html
如果您未使用新的Symfony Flex目录结构,但仍在使用捆绑软件,则配置会有所不同:
AppBundle\:
resource: '../../src/AppBundle/*'
AppBundle\Controller\:
resource: '../../src/AppBundle/Controller'
tags: ['controller.service_arguments']
Run Code Online (Sandbox Code Playgroud)
https://symfony.com/doc/3.4/service_container/3.3-di-changes.html
| 归档时间: |
|
| 查看次数: |
1579 次 |
| 最近记录: |