PHP Symfony 1.4 - 将数据从操作传递到组件的最佳方法?

时间:2012-02-29 12:40:43

标签: php symfony1 symfony-1.4

我在symfony应用程序中创建了breadcrumbs菜单:我在execute {Action}中创建了一个链接列表,然后我使用layout.php中的一个组件来显示它,所以我正在寻找将数据从动作传递到这个组件。我可以使用sfContext作为注册表,但也许有更好的方法吗?

2 个答案:

答案 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); ?>