2012-10-10 46 views
0

是否有人知道如何用mongodb集合填充組合框列表?YiiMongoDbSuite和combobox

$list = CHtml::listData($industryModels, '_id', 'name'); 
echo $form->dropDownListRow($model, 'industry_id', $list);' 

不會工作,因爲_id是mongoId對象,toString不會自動調用。我得到以下錯誤:

PHP warning Illegal offset type 

它基於堆棧跟蹤意味着一個對象不能用作數組鍵。

那麼我如何獲得mongoId字符串作爲組合框列表中的鍵?

回答

0

儘量不要使用了CHtml ::的ListData

$list = array(); 
foreach ($industryModels as $industryModel) { 
    $list[$industryModel->_id] = $industryModel->name; 
} 
echo $form->dropDownListRow($model, 'industry_id', $list); 
+0

這個答案將提高該辛巴提到的同樣的警告,MongoId對象不能用作數組索引。您必須將_id轉換爲字符串。 – farzan

+0

這有效......我在mongoId對象中調用了__toString()方法。 – Simba