0

我正在建立一個圍繞mysql sakila db的zend框架web應用程序。我已經能夠在電影視圖中顯示基本電影表的詳細信息。此表格包含引用語言表的「language_id」和「original_language_id」列。 我在模型中正確設置了表格關係。我不知道如何在電影視圖中顯示語言(不是id) - 我如何以及在哪裏使用模型關係在我的視圖中顯示語言名稱?在控制器層面? 這裏是我的電影控制器的一部分:zend框架 - 如何在視圖中顯示parentrows

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> 

視圖的一部分。 。 。

回答

2

要得到你的電影(如語言)父行,你可以使用:

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

Simillarly獲得薄膜表(例如演員)的依賴行集,您可以使用:

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

爲了簡化這個,你可以定義一個自定義電影db_row,它會有一個被調用的方法,例如使用getLanguage()。更多關於這個,你可以閱讀here。通過這種方式得到例如您可以執行的語言名稱:$filmRow->getLanguage()->name;