账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    thinkphp5下json_encode问题
    7
    0
    1. 我在model层下建立User.php, User.php里有个方法getUserInfo来查询数据的,如下:

      public function getUser()
         {
             return $this->where('id', 8)->find();
         }

      然后在controller控制器下, 实例化该用户模型, 调用实例的getUserInfo,打印数据

      $userModel = new UserModel;
      dump($userModel->getUser());
      dump(json_encode($userModel->getUser()));

      第一个打印出来的数据如下

         object(app\index\model\User)#10 (32) {
           ["dateFormat":protected] => string(5) "Y/m/d"
           ["type":protected] => array(1) {
             ["birthday"] => string(9) "timestamp"
           }
           ["insert":protected] => array(1) {
             ["status"] => int(1)
           }
           ["connection":protected] => array(0) {
           }
           ["parent":protected] => NULL
           ["query":protected] => NULL
           ["name":protected] => string(4) "User"
           ["table":protected] => NULL
           ["class":protected] => string(20) "app\index\model\User"
           ["error":protected] => NULL
           ["validate":protected] => NULL
           ["pk":protected] => NULL
           ["field":protected] => array(0) {
           }
           ["readonly":protected] => array(0) {
           }
           ["visible":protected] => array(0) {
           }
           ["hidden":protected] => array(0) {
           }
           ["append":protected] => array(0) {
           }
           ["data":protected] => array(7) {
             ["id"] => int(8)
             ["nickname"] => string(4) "1111"
             ["name"] => string(4) "c某"
             ["password"] => string(6) "111111"
             ["create_time"] => int(0)
             ["update_time"] => int(0)
             ["status"] => int(0)
           }
           ["origin":protected] => array(7) {
             ["id"] => int(8)
             ["nickname"] => string(4) "1111"
             ["name"] => string(4) "c某"
             ["password"] => string(6) "111111"
             ["create_time"] => int(0)
             ["update_time"] => int(0)
             ["status"] => int(0)
           }
           ["relation":protected] => array(0) {
           }
           ["auto":protected] => array(0) {
           }
           ["update":protected] => array(0) {
           }
           ["autoWriteTimestamp":protected] => bool(true)
           ["createTime":protected] => string(11) "create_time"
           ["updateTime":protected] => string(11) "update_time"
           ["isUpdate":protected] => bool(true)
           ["updateWhere":protected] => array(1) {
             ["id"] => array(2) {
               [0] => string(2) "eq"
               [1] => int(8)
             }
           }
           ["failException":protected] => bool(false)
           ["useGlobalScope":protected] => bool(true)
           ["batchValidate":protected] => bool(false)
           ["resultSetType":protected] => string(5) "array"
           ["relationWrite":protected] => NULL
         }

      而调用json_encode方法打印json是这样子

         string(132) "{"id":8,"nickname":"1111","name":"c\u67d0","password":"111111","create_time":"1970\/01\/01","update_time":"1970\/01\/01","status":0}"

      我自己测试json_encode的value如果是对象,则会输出对象的公共属性, 测试代码如下:

          class TestClass
         {
             public $foo;
         
             public function __construct($foo) 
             {
                 $this->foo = $foo;
             }
         
             public function __toString() {
                 return $this->foo;
             }
         }
         
         $class = new TestClass('Hello');
         var_dump(json_encode($class));

      打印出则是string(15) "{"foo":"Hello"}" , 为什么thinkphp下的json_encode会打印这样的数据

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版

    回答动态

    师傅被妖怪抓走了:发布了悬赏问题火爆全网的“元宇宙”到底是什么?预计能赚取 1积分收益
    酒后略带风情:发布了悬赏问题Android内存中Graphics与Code占用过高预计能赚取 10积分收益
    扛起拖把扫天下:发布了悬赏问题typescript如何导出接口配置?求解,谢谢!预计能赚取 10积分收益
    发布了悬赏问题Vue 如何改变返回页面的路径?如让B页面只能返回到A页面.预计能赚取 11积分收益
    发布了悬赏问题vue H5移动端;底部bottom固定定位,安卓弹起键盘导致页面变形如何解决?预计能赚取 10积分收益
    发布了悬赏问题请问为什么tomcat8.5 GET请求中文正常,POST请求还需要设置UTF-8.预计能赚取 10积分收益
    发布了悬赏问题vue2.5+ts创建以及引入jq的方法预计能赚取 11积分收益
    情场浪女:发布了悬赏问题import ggplot时报错module 'pandas' has no attribute 'tslib'预计能赚取 10积分收益
    见心书画许老师18753375161:发布了悬赏问题echarts3 legend禁止点击事件,允许悬浮事件预计能赚取 11积分收益
    aa_92cb0bd09f:发布了悬赏问题codewar上的一个问题预计能赚取 11积分收益