我有一些zend的問題。這裏是。我打算製作一些文章數據庫,其中包含一些信息。每篇文章都標有1個或多個標籤(如WordPress)。zend重複標記列表
我有一個控制器(讓它作爲索引)和動作(也索引)。 我需要的只是當用戶訪問網站/索引/索引時,獲取與它關聯的文章和標籤。
我有3個表:
articles(idarticles, title..)
tags(idtags, title)
tagList(idarticles, idtags).
我怎麼能讀取標籤,與文章相關的?
我有一些zend的問題。這裏是。我打算製作一些文章數據庫,其中包含一些信息。每篇文章都標有1個或多個標籤(如WordPress)。zend重複標記列表
我有一個控制器(讓它作爲索引)和動作(也索引)。 我需要的只是當用戶訪問網站/索引/索引時,獲取與它關聯的文章和標籤。
我有3個表:
articles(idarticles, title..)
tags(idtags, title)
tagList(idarticles, idtags).
我怎麼能讀取標籤,與文章相關的?
Zend的MVC實際上並不包含模型,但是,quickstart guide outlines creating a model。
最簡單的方法(不一定是最好的方式),是建立在你application.ini
連接,或設置適配器這樣的(見Zend_Db_Adapter
文檔):
$db = new Zend_Db_Adapter_Pdo_Mysql(array(
'host' => '127.0.0.1',
'username' => 'webuser',
'password' => 'xxxxxxxx',
'dbname' => 'test'
));
然後使用SQL來選擇數據。
//all articles
$articles = $db->query('SELECT * FROM articles');
//a article's tags
$tags = $db->query('SELECT * FROM tagList JOIN tags ON
(tagList.idtag = tags.idtags) WHERE idarticles = ?', $idarticles);
這也是功能標籤爲Zend_Db_Table
,用它來訪問數據,首先設置一個默認的適配器(或再次,使用application.ini
):
Zend_Db_Table::setDefaultAdapter($dbAdapter);
然後得到的對象爲你的表像這樣:
$ariclesTable = new Zend_Db_Table('articles');
要獲取所有文章:
$articles = $articlesTable->fetchAll();
爲了得到一個物品的標籤(有點複雜在這裏,使用建議Zend_Db_Table_Select
爲):
$select = $tagsTable->select();
//3rd argument must be empty array, so no joined columns are selected
$select->join('tagList', 'tagList.idtag = tags.idtags', array());
$select->where('tagList.idarticles = ?', $idarticles);
$tags = tagsTable->fetchAll($select);
我不確定'getSelect'方法存在於表中,也許你的意思是'select'。 – Juan 2010-11-15 21:17:27
@Juan的確,我是,所以需要某種自動完成。現在修復。 – 2010-11-16 01:09:35
似乎更多的是SQL的問題。我重申了你的問題:) – 2010-11-15 11:26:56