zoukankan      html  css  js  c++  java
  • Yii: 返回数据表中指定字段以及添加自定义字段值

    在Yii框架中要返回数据表若干字段而不是全部字段的值,方法有两个:
    
    1. 写sql: 
    
    $sql = "select name,gender from t_user";
    
    $users = User::model()->findAllBySql($sql);
    
    
    
    2. 利用AR: CDBCriteria->select
    
    
    [html] view plaincopy
    $criteria->select=>array('id,Name');  
    $users= User::model()->findAll( $criteria );              
    echo (CJSON::encode($users));  
    
    上面的方法有一个问题是Yii虽然没有读取用户表中其它字段的值,但总是返回所有字段,只不过未指定读取的字段返回值为null
    为了获得干净的数据,可以做个简单的处理:
    
    $users = User::model()->findAll($criteria);
    $rows=array();// we need this array
    foreach($users as $i=>$user) {
        $rows[$i]=array_filter($user->attributes,'strlen');
    }
    
    另外如果你想添加一个非数据表所定义的字段,如测试字段:
    
    foreach($users as $user) {
      $user->title = 'test title';
    }
    echo CJSON::encode($users);
    
    但上面的代码不能正常工作,因为Yii能把user对象所有的属性转换为Json数据。但title不是用户对象的属性。
    
    要实现上述目的,可做如下的处理:
    
    $rows=array();// we need this array
    foreach($users as $i=>$user) {
        $user->title = 'test title';
        $rows[$i]=$user->attributes;
        $rows[$i]['title']=$user->title;
    }
  • 相关阅读:
    u-boot启动流程分析(1)_平台相关部分
    Linux文件系统简介
    PHP将部分内容替换成星号
    自制jQuery焦点图切换简易插件
    一次解决页面特效问题的排查记录
    自制jQuery标签插件
    一套后台管理html模版
    自制jquery可编辑的下拉框
    注册页面的一些记录
    CSS选择器的一些记录
  • 原文地址:https://www.cnblogs.com/free3649/p/3711466.html
Copyright © 2011-2022 走看看