leeyee

leeyee

这家伙有点懒,还没写个性签名!

  • 财富值25
  • 威望值0
  • 总积分25

个人信息

  • 问题解决了

    就是 keyField 设置问题。

    $dataProvider = new CArrayDataProvider($userlist,array(
        'keyField'=>false,
    ));
    

    这样设置就可以了,页面正常显示。

  • yii里面关于CArrayDataProvider的 代码注释

    /**
    * @var string the name of key field. Defaults to 'id'. If it's set to false,
    * keys of $rawData array are used.
    */
    public $keyField='id';
    

    设置keyField 为false 将使用 rawData的数组里的keys。

    修改了 在构造 CArrayDataProvider 处的代码

    $dataProvider = new CArrayDataProvider($userlist,array(
        'keyField'=>false,
    ));
    

    但还是报错。。

  • 好像感觉是 CArrayDataProvider 的 keyFeild 设置问题。

    直接修改了 CArrayDataProvider 的 fetchKeys()方法

    protected function fetchKeys()
    {
        if($this->keyField===false)
            return array_keys($this->rawData);
        foreach($this->getData() as $i=>$data)
        
        {
            $keys[$i]='user_id';
        }
            //$keys[$i]=is_object($data) ? $data->{$this->keyField} : $data[$this->keyField];
        return $keys;
    }
    

    显示正常了。。。不是很明白 这个keyField 在 CArrayDataProvider的构造函数中 怎么设置。。

    这个CArrayDataProvider要 自己重载???

  • 发布了话题
    CArrayDataProvider 与 CListView问题
试用期 等级规则
25/50
资料完整度
30/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

0

Ta的访客

1