如何使HHVM的MySQL驱动程序返回ID作为整数?

mau*_*uvm 11 php mysql ubuntu laravel hhvm

我注意到我的Laravel API没有将实体标识符(主键)作为整数返回.

在Api\PostController.php :: show()中:

function index()
{
    $posts = Post::all();

    return $posts;
}
Run Code Online (Sandbox Code Playgroud)

返回的内容如下:

[{
    "id": "1",
    "title": "Post one",
    ...
},{
    "id": "2",
    "title": "Post two",
    ...
}]
Run Code Online (Sandbox Code Playgroud)

这会弄乱我的表排序(因为ID将被排序为字符串:1,10,11,2等).

转储实体本身也表明该id属性是一个字符串.

如前所述这里可能的原因是,MySQL驱动程序不会在适当类型的返回值.

我在Ubuntu 14.04服务器上使用HHVM 3.3.1.有什么方法可以使用本机MySQL库(如php5-mysqlnd)用于HHVM吗?

我可以使用Laravel模型访问器来解决问题.但这更像是一个黑客IMO.

请帮忙!


参考文献:


编辑:我已经确认它不是Laravel的ORM层.PDO实例已将ID作为字符串返回.

sla*_*pyo 1

在您的 Post 类中创建一个访问器id

class Post extends Eloquent {

    public function getIdAttribute($value)
    {
        return (int)$value;
    }

}
Run Code Online (Sandbox Code Playgroud)