我有一些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