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;