在Zend_Db_Table中获取包含连接表的完整行

neo*_*con 1 zend-framework zend-db-table zend-db

这是我的表结构.

http://img6.imageshack.us/img6/8730/articlek.jpg

我想从id获取一个文章行对象,其中包含section和category名称,而不是section_id和category_id,而是用户名而不是author_id和modified_by.

请帮我.

Rob*_*len 9

你需要使用Zend_Db_TablesetIntegrityCheck()功能:

这样的事情应该有效:

$articleTable = new Article();
$select = $articleTable->select();
$select->setIntegrityCheck(false);
$select->from('article', 'article.*');
$select->joinLeft('user', 'article.author_id = user.id', array('author_name'=>'author'));
$select->where('article.id = 123');
$articleRecord = $articleTable->fetchRow($select);
Run Code Online (Sandbox Code Playgroud)

您可以使用以下命令检查生成的SQL:

Zend_Debug::dump($select->__toString());
Run Code Online (Sandbox Code Playgroud)

请注意,返回的Zend_Db_Table_Row对象是只读的.