fiaw 2011-07-30 09:58:51 4818次浏览 13条回复 0 0 0
$dataProvider=new CActiveDataProvider('test', array(
  'criteria'=>array(
    'condition'=>'mark_id='.$id,  ),
    'pagination'=>array(
    'pageSize'=>20,
  ),
));
return $dataProvider;

如果$id是 查询的是 test中不存在的值 $dataProvider的返回值是什么?

if($dataProvider==????)
echo "0";

当$dataProvider为空的时候????应该写什么 答案见三楼

  • 回复于 2011-07-30 10:29 举报

    好像是默认判断的

  • 回复于 2011-07-30 10:32 举报
    $dataProvider=new CActiveDataProvider('Post', array(
      'criteria'=>array(
        'condition'=>'status=1',
        'order'=>'create_time DESC',
        'with'=>array('author'),
      ),
      'pagination'=>array(
        'pageSize'=>20,
      ),
    ));
    // $dataProvider->getData() will return a list of Post objects
    $post=$dataProvider->getData() //will return a list of Post objects 判断empty($post)试试
    
  • 回复于 2011-07-30 10:36 举报

    thanks 代码可以

  • 回复于 2011-07-30 10:37 举报

    落叶V5!感谢分享。

  • 回复于 2011-07-30 10:39 举报

    haha.舰长V5.

  • 回复于 2011-10-21 11:39 举报

    学习了。感谢分享。学习到了

  • 回复于 2012-04-07 11:29 举报

    我之前想遍历CActiveDataProvider实例,一直不得法,试过getData,但是var_dump出来的时候完全看不懂
    尝试用过fetchData(),fetchKeys(),也没能看懂,后来写了个片段(如下),虽然也是ok的

    $dataProvider = new CActiveDataProvider('Project');
    $data = $dataProvider->getData();
    if (!empty($data)) {
      foreach ($data as $k => $v) {
        $data[$k]->name = $v->name . ' tes......';
      }
    $dataProvider->setData($data);
    }
    

    但是对于CActiveDataProvider::getData() 返回值到底包含了什么东西,还是很不解,说是“返回当前可用的数据项.”,可是好像不止

    对于一个“黑盒”东西,在使用起来的时候,内心还是有种很不踏实的感觉,往高人扫盲。。

  • 回复于 2012-04-07 11:38 举报

    巡***老大对推广yii做了不少工作,谢谢了~
    yii在使用的过程中,有时候会觉得封装的太劳实了,不过回头等弄明白了相关api的话,又会觉得该如此封装

    要是老大能够把常用的一些函数运行中间态的结果值,到底包含了什么给稍微讲一两个的话
    比如说上面提到的那个CActiveDataProvider::getData() 的返回值里面实际到底包含了那些东西
    可能对于我等P民比较有帮助

  • 回复于 2012-04-07 11:42 举报

    判断的方法蛮多,empty($dataProvider->getData())可以

    calculateTotalItemCount() 
    totalItemCount()
    getItemCount()
    

    一系列方法对于不同的地方都可比较好的判断

  • 回复于 2012-06-21 10:05 举报

    $data=$dataProvider->getData();
    

    这个方法只能返回当前页的所有数据项,如果我想获得查询出来的所有数据项我该怎么弄呀?

  • 回复于 2012-06-21 10:23 举报
    'pagination'=>false;  
    

    试试

  • 回复于 2012-06-21 11:34 举报

    学习了!

  • 回复于 2012-06-22 07:27 举报

    值得收藏。

您需要登录后才可以回复。登录 | 立即注册