2012-10-21 3 views
0

У меня есть таблица * sitepage_manageadmins * которые содержат: "user_id, page_id". Существует еще одна таблица * sitepage_pages *, которые содержат «page_id, title».ZendFramework - Как получить идентификатор страницы

Im пытается отобразить в качестве раскрывающегося списка (выберите список) в Zend_Form пользователя, который является администратором, к соответствующему page_id.

Вот мой код:

$this->view->owner_id = $viewer_id = $viewer->getIdentity(); // get $viewer 
$adminpages = Engine_Api::_()->getDbtable('manageadmins', 'sitepage')->getManageAdminPages($viewer_id); // get viewer page_id's where is admin 

Получения PAGE_ID как список:

$ids = array (0 => '-- Select --'); 
    foreach ($adminpages as $adminpage) { 
     $ids[] = $adminpage->page_id; 
    } 

Rendering ниспадающего меню

$this->addElement('select', 'page_id', array (
       'label' => 'Page where I'm Admin', 
       'multioptions' => $ids, 
)); 

В настоящем время, им только делает число PAGE_ID, как падать. Я хочу, чтобы из Specific Page_ID отображалось название.

Любые идеи приветствуются? Благодаря

ответ

0

Это потому, что вы ставите только идентификаторы в $ids[] массива Массив MultiOption должен быть ключ-значение пары в этом случае PAGE_ID в качестве ключевого & PAGE_TITLE в качестве значения.
foreach ($adminpages as $adminpage) {
$ids[$adminpage->page_id] = $adminpage->page_title;
}

+0

Что касается моего подключения из базы данных, то у моей таблицы нет поля page_title, поэтому, если я подключусь таким образом, я получаю ошибку. Решение, на мой взгляд, заключается в том, чтобы присоединиться к тому месту, где у сайта page_pages есть идентификатор страницы из идентификатора зрителя manageadmins и из этого идентификатора. Чтобы получить название страницы. – Seik

+0

извините за это .. Я думал, что вы присоединились к нему уже в 'getManageAdminPages()'. Запуталась с 'page_id' из двух таблиц –

+0

' $ выберите = $ this-> выберите() \t -> из ('') sitepage_manageadmins \t -> joinLeft (массив ('страница' => 'sitepage_pages' '),' page.page_id = 'sitepage_manageadmins.page_id', array ('page.page_id AS pageid', 'title AS page_title')) \t -> где ('user_id =?', $ viewer_id); \t ' –