Mongodb 无法将值传递到细枝文件symfony2
嗨,我在控制器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
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
来引用类成员…你能看看这个吗。我正在做下面的事情。我完全同意这一点。