2012-10-21 105 views
0

我有一個表* sitepage_manageadmins *其中包含:「user_id,page_id」。 還有另一張表* sitepage_pages *其中包含「page_id,title」。ZendFramework - 如何獲得頁面ID名稱

我試圖在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; 
    } 

呈現下拉

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

現在,我只是渲染PAGE_ID數字作爲落下。我想從特定Page_ID來呈現標題。

歡迎任何想法? 感謝

回答

0

這是因爲你把唯一的ID給$ids[]陣列的多選項陣列應該是在這種情況下鍵值對PAGE_ID關鍵& PAGE_TITLE的價值。
foreach ($adminpages as $adminpage) {
$ids[$adminpage->page_id] = $adminpage->page_title;
}

+0

對於我從數據庫的連接,我的表格沒有字段page_title,所以如果我以這種方式連接,我會得到錯誤。 我認爲的解決方案是加入sitepage_pages具有來自manageadmins查看器ID的頁面ID以及來自該ID的頁面標題。 – Seik

+0

對不起。我以爲你已經加入了'getManageAdminPages()'。得到了來自兩個表混淆'page_id' –

+0

'$選擇= $這 - >的select() \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 - > where('user_id =?',$ viewer_id); \t' –

相關問題