我在symfony应用程序中创建了breadcrumbs菜单:我在execute {Action}中创建了一个链接列表,然后我使用layout.php中的一个组件来显示它,所以我正在寻找将数据从动作传递到这个组件。我可以使用sfContext作为注册表,但也许有更好的方法吗?
答案 0 :(得分:3)
通常你会在动作的视图中使用一个插槽:
slot('breadcrumb', $links);
然后在你的layout.php中:
<?php if(has_slot('breadcrumb')): ?>
<?php include_component('modulename', 'breadcrumb', get_slot('breadcrumb')); ?>
<?php endif; ?>
基本上slot
在上下文中使用了一个特殊的命名空间(或者它的响应......某个sfParameterHolder的某个实例,呵呵)作为插槽名称/值的注册表 - 所以你想到的解决方案是已实施: - )
答案 1 :(得分:2)
在你的行动中:
$this->links = array('link1', 'link2', 'linkn');
在你的模板中:
<?php include_component('modulename', 'breadcrumb', array('links' => $links); ?>