我需要訪問我的會話,並根據會話屬性我需要從數據庫中獲取東西作爲我的下拉列表中的選項。用動態數據生成一個zend表單?
$ _SESSION是:
[sess_name] => Array(
[properties] => Array(
1=> Hotel A,
2=> Hotel B
),
[selected] => 1
)
我需要抓住酒店A從選中,然後從數據庫中下酒店A訪問的所有帳戶:
id title hotel_id
------------------------------
1 Hotel A Twitter Account 1
2 Hotel B Facebook Account 2
3 Hotel A Facebook Account 1
我需要IDS 1和3,因爲我的hotel_id在上下文中是1:
$this->addElement( 'select', 'account', array(
'multioptions' => $NEED_IT_HERE
));
這是我的查詢/會話抓取代碼:
$cs = new Zend_Session_Namespace(SESS_NAME);
$model = new Model_DbTable_Social;
$s = "
SELECT social_accounts.*
FROM social_accounts
LEFT JOIN social_media_outlets ON social_media_outlets.id = social_accounts.property
WHERE social_accounts.property=".(int)$cs->selectedclient;
我在表單頁面中有此代碼,但現在需要將其移入我的模型中。
*,其中*我做的查詢以獲取這些帳戶?在形式本身?如果是這樣,我如何從表單實例中引用查詢調用方法?我如何真正配合我一起做的事情? – 2010-06-09 20:17:51
當然,從表單中獲取它,確保聽取建議「你可以在你的表單類中創建一個接受DB obj,Session obj並執行加載和設置這些選項所需的操作的方法。」儘管如此,您可以爲您的值注入不同的來源。我會讓'Form_YourClass :: __ construct()'需要這些選項(例如酒店作爲數組),否則初始化將失敗。 – chelmertz 2010-06-09 20:24:08
我把我的db代碼移植到'application/modules/foo/models/DbTable/Social'模型中,模型類名稱爲Model_DbTable_Social,模塊爲foo。拋出致命錯誤:當我嘗試在窗體中調用類時,出現'Model_DbTable_Social'類。或者你提到的那種方式更容易? – 2010-06-09 20:26:20