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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    PHP利用Laravel ORM从Mysql读取存储json的字段,有的返回数组,有的返回字符串
    234
    0

    PHP利用Laravel ORM从Mysql读取存储json的字段,有的返回数组,有的返回字符串。

    public function index(){
            $this->checkPermission('applications/game/index');
            $games = Game::select('id','name','logo','languages','version','pay_configs','advertisement','link','disabled')->get();
            var_dump($games[0]['advertisement']);
            //string(78) "{"zh":"\u751f\u6b7b\2","en":"Battle 2","tr":"Battle 2"}"
            var_dump($games[0]['name']);die();
            //array(3) { ["zh"]=> string(13) "生死" ["en"]=> string(14) "Battle 2" ["tr"]=> string(14) "Battle 2" }
            return $this->success(['games' => $games]);
        }

    表结构如下:

    CREATE TABLE `games` (
      `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
      `name` varchar(600) NOT NULL COMMENT '游戏名称 {"zh":"生死"}',
      `advertisement` text COMMENT '广告 {"zh":"生死广告"}',
      `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
      `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      `deleted_at` datetime DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='游戏';

    存储在数据库的字段都是字符串的json,为什么一个字段的json取出自动变为数组,另一个字段的json取出还是个字符串?(数据库存储的两个字段内容中文都是unicode转义过的)

    3
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 天生有邪 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部