0

我是Zend Framework的新手(我也是这个论坛的新成员:D),我发现这个棘手的问题是关于如果你想从3个相关的表中获取。比方说,如果我有这些SQL查询:从Zend Framework中获取2个或更多相关表格的值

SELECT p.painting_id,p.painting_title ,p.painting_filename,a.artist_name,c.pc_name从绘画P,艺术家 一个,painting_category c其中一个。 artist_id = p.artist_id AND c.pc_id = p.pc_id;

,我想这样做太:

SELECT p.painting_id,p.painting_title ,p.painting_filename,a.artist_name,c.pc_name从绘画P,艺术家 一个,painting_category c WHERE a.artist_id = p.artist_id AND c.pc_id = p.pc_id AND p.painting_id = $ p_id;

的情况下,首先,我要显示所有画作(与艺术家名称和类别),然后,当用户点击画,它会去到另一个网页,只显示绘画(与艺术家名称和类别)。

我已经在模型取得这一进展:

类Application_Model_DbTable_Painting扩展Zend_Db_Table_Abstract {

protected $_name = 'painting'; 
protected $_referenceMap = array(
    'Artist' => array(
     'columns'   => array('artist_id'), 
     'refTableClass'  => 'Artist', 
     'refColumns'  => 'artist_id' 
    ), 
    'PaintingCategory' =>array(
     'columns'   => array('pc_id'), 
     'refTableClass'  => 'PaintingCategory', 
     'refColumns'  => 'pc_id' 
    ) 
    ); 

类Application_Model_DbTable_Artist扩展Zend_Db_Table_Abstract {

protected $_name = 'artist'; 

protected $_dependentTables = 'Model_DbTable_Painting'; 

} 小号

类Application_Model_DbTable_PaintingCategory扩展Zend_Db_Table_Abstract {

protected $_name = 'painting_category'; 

protected $_dependentTables = 'Model_DbTable_Painting'; 

}

我应该添加在模型中什么样的功能,我应该怎么写在控制器和视图脚本得到结果,如SQL查询我上面写过?告诉我,如果我犯了错误。

我真的很感激,如果你会给我一些与我的问题有关的例子。感谢

回答

2

这是一个类似的问题,它可以帮助你:

Zend Framework join

从中

除了直接在Zend框架也write and execute SQL语句可以。

+0

嗨,谢谢!我设法在Zend Framework中直接编写和执行SQL语句。我最大的错误是我忘了将$ this-> escape放到显示当前绘画的链接上(这导致参数传递失败):))。 – psaka