Mongodb 无法将值传递到细枝文件symfony2

Mongodb 无法将值传递到细枝文件symfony2,mongodb,symfony,Mongodb,Symfony,嗨,我在控制器Symfony2中有以下功能 class OrganisationTaskController extends Controller { public function setContainer(\Symfony\Component\DependencyInjection \ContainerInterface $container = null) { parent::setContainer($container); $this

嗨,我在控制器Symfony2中有以下功能

class OrganisationTaskController extends Controller
{

    public function setContainer(\Symfony\Component\DependencyInjection  \ContainerInterface $container = null)
    {
        parent::setContainer($container);
        $this->containerInitialized();
    }

    /**
     *    Perform some operations after controller initialized and container set.
     */
    public function containerInitialized()
    {

        $dbName = $_SESSION['_sf2_attributes']['dbName'];
        $orgDM = $this->get('work_core.common_functions')->getDocumentManager('org', $dbName);
        $coreDM = $this->get('work_core.common_functions')->getDocumentManager('core', '');

        $organisationLogoDetails = $orgDM->getRepository(
            'Work\OrganisationBundle  \Document\OrganisationConfig'
        )->findOneBy(
            array(
                'isActive' => true
            )
        );
        if ($organisationLogoDetails->getlogoFileId() != "") {
            $orgLogo = $organisationLogoDetails->getlogoFileId();
        } else {
            $orgLogo = "";
        }
        //Get Organisation Name from Global Organisation
        $globalOrgName = $coreDM->getRepository('Work\CoreBundle\Document\Organisation')->findOneBy(
            array('shortName' => $_SESSION['_sf2_attributes']['shortName'])
        );
        $orgName = $globalOrgName->getName();


        $commonVariablesArrays = array(
            'orgLogo' => $orgLogo,
            'orgName' => $orgName
        );

    }
}
我想在layout.html.twig.com中传递$CommonVariablesArray变量而不进行渲染

此函数在控制器的任何函数之前调用,我正在编写一些常用代码,这些代码需要在layout.html.twig文件中使用,该文件是我的应用程序的常用布局。 所以我的问题是我无法设置$arrays变量来传递这个“layout.html.twig”。我在每一页上扩展这个布局,如: {%extends'WorkCoreBundle::layout.html.twig%}

那么,有谁能帮助我如何访问布局文件中的$array变量吗?非常感谢。如果我要像这样传递此变量: 返回$this->render('workorganizationbundle:Layout:Layout.html.twig',数组('aray'=>$commonvariablesarray ));


这也会引发一个错误,即变量aray不存在。

如果containerInitialized是控制器中的一种uu构造, 然后您需要在那里设置$this->commonVariablesArray,然后您可以将这个公共数组检索到controller::Actions()中

无论如何,我会选择一条不同的路线,在其他地方进行这种常见的分配,例如在服务中。然后,您可以在需要的控制器中注入服务,或者将服务作为属性注入所有controller::Actions()(尽管这只是一个建议,但您可以使用标准Symfony实现这一点,而无需任何额外的捆绑包)

实现所需功能的另一种方法是使用事件处理程序。请看这里:


我不理解在不渲染的情况下将值传递到模板中的概念。正是在渲染时,在模板中指定了键->值。

我建议使用会话,如下响应中所述:


并且永远不要手动访问会话全局
$\u session[''u sf2\u attributes']

我假设您尝试了
$this->arrays=..
,对吗?不,我没有这样尝试过。我找不到任何解决方案,我在google上搜索了所有内容。当您编写
$array=
时,您设置了局部变量,在该方法之外是不可见的。你必须使用
$this->arrays
来引用类成员…你能看看这个吗。我正在做下面的事情。我完全同意这一点。