【问题标题】:YiiMongoDbSuite and dropdown listYiiMongoDbSuite 和下拉列表
【发布时间】:2012-09-29 06:08:10
【问题描述】:

有人知道如何从 MongoDb 集合中填充下拉列表吗?我如何访问 MongoId 对象。我正在使用带有 YiiMongoDbSuite 扩展的 Yii 框架。

【问题讨论】:

    标签: mongodb drop-down-menu yii mongoid populate


    【解决方案1】:

    我相信 YiiMongoDbSuite 返回 CActiveRecord 类型的活动记录。

    _id 只是该类的一个属性:

    $m = $v->_id

    将使$m 等于该记录或活动记录类的_id。

    上面的代码可能会返回一个MongoId 对象,这可能是您遇到的问题,在这种情况下,您只需这样做:

    $m = (string)$v->_id

    获取MongoId对象的字符串表示。

    【讨论】:

    • 但以下将不起作用 '$list = CHtml::listData($industryModels, '(string)_id', 'name'); echo $form->dropDownListRow($model, 'industry_id', $list);'
    • @Simba $list = CHtml::listData($industryModels, '_id', 'name'); 怎么样,因为listData 方法应该通过字符串获取_id
    • 我得到以下错误...PHP警告非法偏移类型...基于堆栈跟踪意味着对象不能用作数组键
    • @Simba 是的,我查看了源代码:yiiframework.com/doc/api/1.1/CHtml#listData-detailchtml::value 不提供对象形成的模型属性。我认为您将不得不手动执行此操作并建立一个 _ids 数组,然后将其推送到 listData 字段中。另一种选择是创建一个get_id 函数将其作为字符串返回,但我不确定这会对模型的一般保存产生什么影响。
    猜你喜欢
    • 1970-01-01
    • 2017-06-22
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多