簡體   English   中英

Symfony2如何在控制器中將parameters.yml用作變量

[英]Symfony2 How to use parameters.yml in a controller as a variable

我正在使用Symfony2項目。

我試圖在parameters.yml中使用一些數據,並在我的一個控制器中使用這些數據。

我已閱讀 Symfony2的文檔中大約getParameters()但它不工作。

在我的parameters.yml中,我做到了這一點:

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

在我的控制器中,我正在嘗試這個:

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

這是我得到的錯誤:

Notice: Undefined property $container

試試$this->container->getParameter('sitemap_root_url');

它適用於我,我使用Symfony 2.5。

如果要在控制器中使用容器,可以進行擴展

Symfony \\ Bundle \\ FrameworkBundle \\ Controller \\ Controller(Symfony基本控制器)。

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

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class HelloController extends Controller
{
    // ...
}

然后你就可以獲得你的財產。 適用於我的示例控制器:

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');
            );
    }
}

顯然$container沒有在你的控制器中聲明,如果你想訪問控制器你可以擴展Symfony\\Bundle\\FrameworkBundle\\Controller\\Controller然后使用$this->container->getParameter('sitemap_root_url')

否則,您必須將控制器聲明為服務並注入容器。

嘿,我必須回答(我想編輯第一個答案),但你的getParameters()有一個不必要的s ,這就是我猜的所有問題;)

對於symfony 2.6

$this->container->getParameter('api_key'); 

以上symfony 2.6

$this->getParameter('api_key');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM