codeigniter 2 и smarty 3: возвращен мульти-массив результатов stdClass - как их отобразить в smarty - PullRequest
1 голос
/ 28 сентября 2011

Моя функция Sql getLive_projects имеет этот запрос -
$ query = "SELECT p. * ИЗ проектов p, ГДЕ p.live = 1 ORDER BY client_name ASC";
$ response = $ this-> db-> query ($ query) -> result ();

Мой контроллер:
// получаем живые проекты
$ data ['live_projects'] = $ this-> projects-> get_live_projects ();
// загружаем проекты с данными
$ this-> parser-> parse ("projects.tpl", $ data);

Данные в моем шаблоне выглядят так, когда я использую {$ live_projects | print_r}

Array
(
[0] => stdClass Object
    (
        [id] => 1
        [client_name] => client one
        [dev_url] => clientone.com
        [live_url] => clientone.com
        [version] => 1.0
        [live] => 1
    )

[1] => stdClass Object
    (
        [id] => 2
        [client_name] => client two
        [dev_url] => clienttwo.com
        [live_url] => clienttwo.com
        [version] => 3.1
        [live] => 1
    )

)

Как я могу вывести это в моем шаблоне? Я попытался {foreach from = $ live_projects item = $ project}, а затем попытался использовать {$ project-> client_name}, но это не сработало. Должен ли объект быть недоступным для меня, когда я перебираю массив? Я что-то упустил очевидное? Я иду об этом в правильном направлении? Я просто хочу перебрать возвращенные результаты и отобразить каждый из них как строку в моем шаблоне.

Я искал на форумах, но не смог найти ответ, который решил бы мою проблему - любая помощь будет высоко ценится. Существует несколько примеров использования $ live_projects [0] -> id, но как это можно включить в выходные данные из smarty, где многие элементы возвращаются в наборе результатов.

1 Ответ

0 голосов
/ 28 сентября 2011

Вы были почти там! При определении имени переменной элемента вам не нужно включать знак «$». Измените свой код на:

{foreach from=$live_projects item=project}
    {$project->client_name}
{/foreach}

Это должно сработать.

...