0

例如,当我使用 时Model_Trabalhos::query()->related('categoria'),我得到一个像这样的普通 JSON:

{
    "id": "1",
    "categoria_id": "2",
    "empresa": "Veja",
    "nome": "Veja",
    "thumb_pequena": "jobs/digital/veja/thumb.jpg",
    "thumb_grande": "jobs/digital/veja/thumb_grande.jpg",
    "destaque": "0",
    "categoria": {
        "id": "2",
        "titulo": "Digital"
    },
    "imagens": {
        "1": {
            "id": "1",
            "url": "jobs/digital/veja/1.png",
            "legenda": "",
            "job_id": "1"
        },
        "2": {
            "id": "2",
            "url": "jobs/digital/veja/2.png",
            "legenda": "",
            "job_id": "1"
        }
    }
}

相反,我想收到这个:

[
    {
        "id": "3",
        "categoria_id": "2",
        "empresa": "Valor Econômico",
        "nome": "Novo Site",
        "thumb_pequena": "jobs/digital/valor-economico/thumb.jpg",
        "thumb_grande": "jobs/digital/valor-economico/thumb_grande.jpg",
        "destaque": "1",
        "categoria": {
            "id": "2",
            "titulo": "Digital"
        },
        "imagens": [
            {
                "id": "3",
                "url": "jobs/digital/valor-economico/1.png",
                "legenda": "",
                "job_id": "3"
            }
        ]
    }
]

你看?在第二种情况下,它被包装在一个数组中,我想知道FuelPHP原生中是否有一个函数可以包装要订购的内容。

我遇到了麻烦...我正在使用 FuelPHP + ORM 从数据库中获取所有记录并生成 JSON 以与 JavaScript 和 Ajax 一起使用,但是在 Chrome 中,JSON 没有按照定义的顺序,是否存在这个问题的任何解决方法?

4

2 回答 2

0

如果您希望以某种方式获取信息,则可以使用 foreach 循环跟踪该查询,该循环将在转换为 JSON 后将它们添加到数组数组(转换为 JSON 对象数组)中。

$query = Model_Trabalhos::query()->related('categoria')

$categories = array();
foreach ($query as $category) {
    $categories[] = array(
        'id' => $category->id,
         ...
    );
}

return $categories;
于 2013-10-06T02:19:31.317 回答
0

这是一个老问题,但我现在遇到了同样的问题,并且像我在https://stackoverflow.com/a/34242106/5670195中发布的答案一样解决了问题。

如果是转换为简单数组的函数,则返回的对象为 ORM 的关系。

于 2015-12-14T18:49:24.540 回答