PHP и Codeigniter. Как вернуть объект массива, а не простой массив? - PullRequest
1 голос
/ 28 августа 2011

В Codeigniter я создаю массив и возвращаю его пользователю. Я создаю массив, как это (результат возврата формы запроса БД):

array("email" => $result)

Прямо сейчас выводит:

"email": [
    {
        "id": "629",
        "desc": "0000",
        "value_1": "0000",
        "value_2": null,
        "value_3": null,
        "value_4": null,
        "privacy": "0"
    }
]

Итак, $result - это массив, содержащий один объект. Как я могу заставить $result содержать только объект вместо этого? Как это:

"email": {
    "id": "628",
    "desc": "THIS IS IT",
    "value_1": "THIS IS IT2",
    "value_2": null,
    "value_3": null,
    "value_4": null,
    "privacy": "0"
}

Благодарен за все комментарии!

Ответы [ 3 ]

3 голосов
/ 28 августа 2011

Просто используйте:

array("email" => $result->row());

См. Документацию CI по запросам и row():

Эта функция возвращает одну строку результатов. Если ваш запрос содержит более одной строки, он возвращает только первую строку. Результат возвращается как объект.

1 голос
/ 28 августа 2011

Первый - это JSON-объект, который имеет свойство / член email, то есть, в свою очередь, JSON-объект, который содержит свойства id, desc и т. Д.

Вторым, с другой стороны, является JSON-объект со свойством email, представляющий собой массив JSON, который содержит 1 элемент со свойствами id, desc и т. Д.

В принципе, если бы я перевел доступ к значению value_1, поле:

1 объект:

obj.email.value_1

2 объекта:

obj.email[0].value_1

1 голос
/ 28 августа 2011

Первый определяет email как объект .

Второй определяет email как простой массив с одним элементом, и этот элемент сам по себе является объектом .

Например, для доступа к свойству id с использованием первой формы email вы должны иметь:

var id = obj.email.id;

Во втором классе:

var id = obj.email[0].id;

Edit: ответ на ваш новый вопрос "Как я могу получить второй, похожий на первый" - вы не можете. Вторая форма определяет совершенно разные вещи, вам просто нужно изменить способ доступа к этому email и, если всегда есть один элемент, используйте email[0], как в примере кода выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...