PHP Symfony 1.4 - лучший способ передачи данных от действия к компоненту? - PullRequest
4 голосов
/ 29 февраля 2012

Я делаю меню крошек в моем приложении Symfony: я создаю список ссылок в execute {Action}, затем я использую компонент в layout.php для его отображения, поэтому я ищу способ передачи данных из action вэтот компонент.Я могу использовать sfContext в качестве реестра, но, может быть, есть лучший способ?

Ответы [ 2 ]

3 голосов
/ 29 февраля 2012

Как правило, вы бы использовали слот, поэтому в представлении действия:

slot('breadcrumb', $links);

А затем в вашем layout.php:

<?php if(has_slot('breadcrumb')): ?>
  <?php include_component('modulename', 'breadcrumb', get_slot('breadcrumb')); ?>
<?php endif; ?>

По существу slot использует специальное пространство имен в контексте (или, может быть, его ответ ... некоторый экземпляр sfParameterHolder где-то, хе-хе) в качестве реестра имен / значений слотов - так что решение, о котором вы думали, уже реализовано: -)

2 голосов
/ 09 марта 2012

В вашем действии:

$this->links = array('link1', 'link2', 'linkn');

В вашем шаблоне:

<?php include_component('modulename', 'breadcrumb', array('links' => $links); ?>
...