내 MainBundle/MainFunctions /에 서비스를 정의했고 컨트롤러에서 서비스를 호출 할 수 있습니다. 이제 템플릿에서 SYMFONY 3.4의 서비스 컨테이너를 어떻게 얻을 수 있습니까? 더 이상 공개되지 않는 문서를 읽으십시오.템플릿의 symfony3.4 서비스 컨테이너
#view/template.html.php
<?php $shop_id = $this->container->get('main_functions')->getSessionShopId(); ?>
내 config.yml
imports:
- { resource: parameters.yml }
- { resource: security.yml }
- { resource: services.yml }
- { resource: "@FrontendMainBundle/Resources/config/services.yml
내 FrontendMainBundle/자원/설정/services.yml는
services:
_defaults:
public: true
frontend_locale.locale_listener:
class: Frontend\MainBundle\EventListener\LocaleListener
arguments: ["%kernel.default_locale%"]
tags:
- { name: kernel.event_subscriber }
main_functions:
public: true
class: "%main_functions_class.class%"
arguments: ['@translator', '@doctrine.orm.entity_manager'....
나는 더 이상 공개하지 않은 문서를 참조하십시오. 하지만 템플릿의 main_functions에 도달 할 수 없습니다. 방법?
고맙습니다. 당신이 당신의 템플릿에 약간의 지능을 필요로하는 경우
서비스 로케이터를 템플릿에 사용하는 것은 제 의견으로는 좋지 않습니다. 대신 컨트롤러에'main_functions' 서비스를 삽입하고 템플릿에 필요한 vars 만 전달하십시오. – yceruto