drema2014 2014-05-19 03:30
浏览 19

从findAll函数Yii自定义get列

I have some problem that, I am using criteria to customize a number column query

 $criteria=new CDbCriteria();
            $criteria->select =array('CompanyName', 'CompanyCountCoupon','CompanyDes', 'CompanyLogo');
            $models = Company::model()->findAll($criteria);

After I put it to array and echo result

    $rows = array();
        foreach($models as $i=>$model1) {
            $rows[$i] = $model1->attributes;
        }
    echo  CJSON::encode($rows)

My problem is that the results contains all attributes of table, and attributes not in criteria->select will set = null

   {"CompanyName":"abc","CompanyCountCoupon":"0","CompanyDes":"Hello","CompanyLogo":"\/upload\/company\/abc.jpg",**"CompanyID":null,"CompanyWebSite":null,"CompanyAdrress1":null,"CompanyAdrress2":null,"CompanyPhone1":null,"CompanyPhone2":null**}

Please help me. Thanks to all

  • 写回答

3条回答 默认 最新

  • douba7784 2014-05-19 03:36
    关注

    if you go with findAll() (using ActiveRecord) you won't be able to control that part, the way to go is a custom query :

    $results = Yii::app()->db->createCommand()
        ->select('CompanyName ,CompanyCountCoupon ,CompanyDes ,CompanyLogo')
        ->from('company')
        //->where() // where part
        ->queryAll();
    
    echo  CJSON::encode($results);
    

    now its already good to be JSON encoded and also much faster than regular ActiveRecord

    评论

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?