donglu1913 2018-04-14 12:32
浏览 62
已采纳

如何在JSON响应中表示MySql zerofill

Hello everyone I am tring to retrive my Column That have a zerofill specifications with json response but it seems to be that php ignore the zeros in there , so i tried to use str_pad to do the same work as the zerofill but it's ignore it too !!! so how can i fix that issue ? here is my code

public function getGeneralPost(){
    $post =Post::inRandomOrder()->orderBy('created_at', 'DESC')->get();
    foreach ($post as $item){
        $categories = Category::where('id' , $item->post_subtype)->select('category_title')->first();
        $categories_type = Category::where('id' , $item->post_type)->select('category_title')->first();
        $item->post_subtype = $categories->category_title;
        $item->post_type = $categories_type->category_title;
        $item->id = str_pad($item->id ,10,'0',STR_PAD_LEFT);// here I am usting str_pad     
    }
    $success['posts'] =$post;
    return response()->json(['code'=>'success','success' => $success], $this->successStatus);
}
  • 写回答

2条回答 默认 最新

  • donjao6770 2018-04-14 12:46
    关注

    As already noted in the comments, there seems to be a default cast for the id column to int, which will revert your changes done through str_pad().

    To circumvent the issue, you could either store the padded id in a separate field which has no cast in place or, instead of altering the object, you could get the attributes of the object, alter them and use them to return your result.

    Just from the framework code itself, it might also be possible to override the $keyType property of your objects before returning them:

    public function getGeneralPost() {
        $post = Post::inRandomOrder()->orderBy('created_at', 'DESC')->get();
        foreach ($post as $item) {
            $categories = Category::where('id' , $item->post_subtype)->select('category_title')->first();
            $categories_type = Category::where('id' , $item->post_type)->select('category_title')->first();
            $item->post_subtype = $categories->category_title;
            $item->post_type = $categories_type->category_title;
    
            $item->setKeyType('string');
            $item->id = str_pad($item->id ,10,'0',STR_PAD_LEFT);
        }
        $success['posts'] = $post;
        return response()->json(['code'=>'success','success' => $success], $this->successStatus);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来