Zend Framework - как отображать скобки в представлении - PullRequest
0 голосов
/ 23 февраля 2011

Я создаю веб-приложение Zend Framework на базе mysql sakila db. Я был в состоянии отобразить основные таблицы фильмов в просмотре фильмов. эта таблица содержит среди других столбцов столбцы language_id и original_language_id, которые ссылаются на языковую таблицу. Я правильно настроил отношения таблиц в моих моделях. Я не уверен, как отобразить язык (не идентификатор) в моем фильме - как и где я могу использовать отношения модели для отображения имен языков в моем представлении? на уровне контроллера? вот часть моего контроллера фильмов:

    class FilmsController extends Zend_Controller_Action
{
    public function indexAction()
    {
        $this->view->title = 'Films';
        $this->view->headTitle($this->view->title);
        $films = new Application_Model_DbTable_Films();
        $this->view->films = $films->fetchAll();

вот часть представления, где я показываю таблицу

   <td><?php echo $this->escape($film->title);?></td> 
<td><?php echo $this->escape($film->description);?></td>
<td><?php echo $this->escape($film->release_year);?></td> 
<td><?php echo $this->escape($film->language_id);?></td>

. , .

1 Ответ

2 голосов
/ 24 февраля 2011

Чтобы получить родительскую строку для ваших фильмов (например, язык), вы можете использовать:

$languageRow = $filmRow->findParentRow('MODEL_FOR_LANGAUGE_TABLE');

Одновременно, чтобы получить зависимый набор строк таблицы фильмов (например, актеров), вы можете использовать:

$actorRowset = $filmRow->findDependentRowset('MODEL_FOR_ACTORS_TABLE');

Чтобы упростить это, вы можете определить пользовательский фильм db_row, у которого будет вызываться метод, например, getLanguage ().Подробнее об этом вы можете прочитать здесь .Этот способ получить, например, название языка, которое вы могли бы просто сделать: $filmRow->getLanguage()->name;.

...