2010-11-15 2 views
1

У меня есть проблема с zend. Вот. Я собираюсь сделать какие-то статьи db, которые содержат некоторую информацию. Каждая статья помечена 1 или более тегами (например, WordPress).zend retriving tag список

У меня есть контроллер (пусть это индекс) и действие (также индекс). Все, что мне нужно - это получить статьи и теги, связанные с ним, когда пользователь перейдет на сайт/индекс/индекс.

У меня есть 3 таблицы:

articles(idarticles, title..) 
tags(idtags, title) 
tagList(idarticles, idtags). 

Как я могу прочитать теги, связанные со статьей?

+0

Кажется, больше SQL-вопрос. Я ответил на ваш вопрос :) –

ответ

1

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); 

Это также TAged для 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); 
+0

Я не уверен, что метод 'getSelect' существует в таблице, может быть, вы, где значение' select'. – Juan

+0

@Juan Действительно, я был, SO нуждается в каком-то автоматическом завершении. Исправлено. –