2010-11-22 75 views
0

我有一個擴展了Zend_Db_Table_Abstract的NewsModel。新聞表包括:newsid,標題,文字和創作者。創建者遇到用戶表的用戶標識。用戶表由用戶名和用戶名組成。加入Zend模型

現在我想在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

到目前爲止,我不知道任何其他方法,使使用zf加入。我相信除了使用一些ORM之外,無論如何,您都必須指定連接的表和連接條件。 – RageZ 2010-11-22 08:15:55

回答

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

1

我相信RageZ是正確的,因爲您無法使用某種ORM跨越多個表的單個模型。然而,你可以很容易的擁有User_Row-> getNewsArticles()和News_Row-> getUser()方法。