3

我有一个名为 Web\CoworkerBundle 的 Bundle。在 DIC/Configuration.php 我有:

$rootNode = $treeBuilder->root('web_coworker');
$rootNode
    ->children()
        ->scalarNode('redirect_url')->defaultNull()->end()
    ->end();

在 config.yml 我有:

web_coworker:
    redirect_url: "http://www.example.com/"

现在在我的 DefaultController.php 中,我做

return array(
    'url' => $this->container->getParameter('redirect_url')
);

我得到错误

必须定义参数“redirect_url”。

我错过了什么吗?

4

1 回答 1

15

你需要在你的包中创建一个扩展(Acme/DemoBundle/DependencyInjection

class AcmeDemoBundleExtension extends Extension
{
    public function load(array $configs, ContainerBuilder $container)
    {
        $configuration = new Configuration();
        $config = $this->processConfiguration($configuration, $configs);

        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
        $loader->load('services.yml');
        // MOST IMPORTANT LINE
        $container->setParameter('web_coworker.params', $config);
    }
}

现在关于控制器,您可以删除您返回的内容,这应该可以解决问题:)

于 2012-07-25T13:05:49.000 回答