我有一个扩展Zend_Db_Table_Abstract的NewsModel。新闻表包括:newsid,title,text和creater。 creater引用用户表的用户标识。用户表由用户标识和用户名组成。
现在我希望将用户放在NewsModel中。目前
目前我在模特中这样做:
$select = $this->select(Zend_Db_Table::SELECT_WITH_FROM_PART)
->setIntegrityCheck(false);
$select->join('muskelpilot_users',
'muskelpilot_users.userid= muskelpilot_news.creater',
'username');
return $this->fetchAll($select);
没有方法可以解决这个问题吗?
答案 0 :(得分:1)
我认为RageZ的正确之处在于,如果不使用某种ORM,就不能拥有跨越多个表的单个模型。
但是,您可以轻松地拥有User_Row-> getNewsArticles()和News_Row-> getUser()方法。
答案 1 :(得分:1)
您可以在模型中指定关系,以便执行此操作:
$newsModel = new NewsModel();
$news = $newsModel->find(1); // find a row, returns an instance of Zend_Db_Table_Row
$user = $news->findDependentRowset('User'); // returns instance of Zend_Db_Table_Rowset
请点击此处了解详情:http://framework.zend.com/manual/en/zend.db.table.relationships.html