2014-12-09 2 views
3

Symfony2 프로젝트로 작업하고 있습니다.Symfony2 컨트롤러에서 parameters.yml을 변수로 사용하는 방법

parameters.yml에서 decleared 된 데이터의 pice를 사용하고이 데이터를 내 컨트롤러 중 하나에서 사용하려고합니다.

getParameters()에 대한 symfony2 설명서에서 this을 읽었지만 작동하지 않습니다. 내 parameters.yml에서

내가이 짓을 : 내 컨트롤러에서

sitemap_root_url: http:/example.co.uk/news/ 

을 내가 이것을 시도하고있다 :

$this->test = $this->container->getParameters('sitemap_root_url'); 

입니다 오류가 나는 얻을 :

Notice: Undefined property $container 
+0

하면 '@의 service_container'를 주입 할 수 [1] : http://stackoverflow.com/a/21130535/741782 – antongorodezkiy

답변

2

시도해보십시오 $this->container->getParameter('sitemap_root_url');

잘 작동하며 Symfony 2.5를 사용합니다.

당신이 당신의 컨트롤러 컨테이너를 사용하려는 경우

심포니 \ 번들 \ FrameworkBundle \ 컨트롤러 \ 컨트롤러 (심포니의 기본 컨트롤러)를 확장 할 수 있습니다.

// src/AppBundle/Controller/HelloController.php 
namespace AppBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

class HelloController extends Controller 
{ 
    // ... 
} 

그럼 당신은 당신의 재산을 얻을 수있을 것입니다. 분명히 $container가 컨트롤러에 선언되지

namespace AppBundle\Controller; 
use Symfony\Component\HttpFoundation\Response 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

class HelloController extends Controller 
{ 
    public function indexAction() 
    { 
      return new Response(
        $this->container->getParameter('sitemap_root_url'); 
      ); 
    } 
} 
+0

나는 어떻게의 버전을 확인 할이 ... 'conteiner'부분에 대해 싶어서 울고있다, 작동하지 않습니다이 시도 Symfony2 나는 – Tomazi

+0

composer.json 파일을 실행하고 "symfony/symfony"에서 "require"부분과 value를 발견하면 심포니 버전이됩니다. – ajtamwojtek

+0

2.5. * 이것은 당신의 것과 정확히 똑같습니다 ... 그러나 작동하지 않습니다 ... – Tomazi

2

을, 당신은 컨트롤러에 액세스하려는 경우 Symfony\Bundle\FrameworkBundle\Controller\Controller을 확장 한 다음 선언해야합니다 그렇지 않으면 $this->container->getParameter('sitemap_root_url')

를 사용할 수 있습니다 나를 위해 작동 예 컨트롤러 콘트롤러로서 콘트롤러를 삽입하고 콘테이너를 삽입하십시오.

+0

좋아요 내가 어떻게 서비스를 비우는 지 이해가 되죠 ....? – Tomazi

1

이봐 난, 그게 내가 생각하는 모든 문제입니다 (내가 첫 번째 대답을 편집하고 싶었) 대답했지만 당신이 당신의 getParameters()에 불필요한 을 가지고,

+0

메서드 이름을 잘못 입력하면 정의되지 않은 속성 인 컨테이너 오류 메시지가 나타납니다. – Cerad

0

심포니에 대한) 2.6

$this->container->getParameter('api_key'); 
[스레드] [1] 0 전술 한 바와 같이 심포니

은 2.6

$this->getParameter('api_key'); 
관련 문제