这是我的表结构。
http://img6.imageshack.us/img6/8730/articlek.jpg
我想从id获取带有section和category名称的文章行对象,而不是section_id和category_id,而是用户名而不是author_id和modified_by。
请帮帮我。
答案 0 :(得分:9)
您需要使用Zend_Db_Table
的{{1}}功能:
这样的事情应该有效:
setIntegrityCheck()
您可以使用以下命令检查生成的SQL:
$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);
请注意,返回的Zend_Debug::dump($select->__toString());
对象是只读的。
答案 1 :(得分:1)
这超出了Zend_Db_Table的范围。 Zend_Db_Table可以很容易地获取其他行(see here),但它不会自动执行。您可能想查看Zend Framework Quick Start,它讨论了使用DataMapper模式,这可能是您想要查看的内容。
您必须扩展Zend_Db_Table_Row并在init()方法中查询其他表以获取所需信息。您可以通过覆盖rowClass变量来指定要在Zend_Db_Table类中使用的行类:
protected $_rowClass = 'FooRow';
来自评论:
require_once(dirname(realpath(__FILE__) . '/path/relative/to/articles/ArticleRow.php');