一个字符“0090001” 在BLADE模板中会显示成 90001 求解

一个字符串存入数据库后 在数据库中显示“0090001”,将这个数据从数据库中取出传到view后 在视图中使用{dd($result)}显示数据 其结果为 正常的“0090001”

 +timestamps: true
        #attributes: array:23 [▼
          "im_id" => 40
          "im_cpbh" => "0090001"
          "a_sqbh" => 6

可是通过foreach 后 显示出来的代码 就没有前面的两个0了 变成了90001 这个是什么原因呢? 求助

@foreach($result as $v)
                <tr>                  
                  <td class="am-hide-sm-only">{$v->im_cpbh}</td>
JellyBool

我这边不管是 foreach 还是直接输出,都没有这个情况出现。。。。

你看看这个资料

http://stackoverflow.com/questions/19354208/use-numbers-starting-with-0-in-a-variable-in-php

lywindly

找到原因了 估计这个问题碰上的人会很少 再次感谢JB的支持。
记录一下问题的原因 因为不显示前导 0 于是我到MYSQL中直接SQL读取数据 发现数据 是可以被读取出前面的0的 说明数据是正确的 于是就用laravel支持的DB:SELECT 原生SQL的方法进行测试 发现也可以读取出 0 我更加怀疑是因为通过ORM后 数据才发生了改变 那使用ORM必然要用MODEL类 那就要去看源代码 时间太长了 于是我就进入到 model下对对应表的MODEL中,我发现其中有这样一句

protected $primaryKey="im_cpbh";

这个字段是主键 把这句注释后 取出的0正常了

#分析#
应该是 ORM会对做主键的数字进行处理 将前面的0去掉 至于为什么 只有看源码或者 期待JB的解答了