2011-12-29 4 views
2

У меня есть ассоциативный массив:CodeIgniter и Smarty

Модель

public function selectArticle(){ 
    $sql = $this->db->query("SELECT * FROM articles"); 
    return $sql->result_array(); 
} 

Контроллер

public function index(){ 
    $data['articles'] = $this->article->selectArticle(); 
    $this->parser->parse('index.tpl', $data); 

} 

Шаблон

{foreach from = $articles item = $article} 
<tr> 
    <td width="30%">{$article.title}</td> 
    <td width="30%"> 
       <a href="{$article.link}" target="_blank">http://example.net</a> 
    </td>  
    <td width="20%">{$article.size}</td> 
    <td width="20%">{$article.count}</td> 
</tr> 
{/foreach} 

Как получить FILD в шаблоне?
Как сейчас: article.fild - не работает

+0

Я не помню, но разве это не было '{$ article-> title}' и т. Д. В smarty? – rekire

+1

Можете ли вы подробнее рассказать о том, что не работает? Является ли страница полностью пустой? Распечатывается ли загрузка страницы, но не информация? Можете ли вы сбросить массив статей, чтобы увидеть, что внутри него, из представления? Все это поможет нам быстрее добраться до ответа. –

+0

Rekire, он возвращает данные sql с помощью -> result_array(). Собственный ответ Codeigniters - вернуть объект. Вот почему вы видите $ article -> $ title. Но поскольку он возвратил его как массив, он использует правильный синтаксис. –

ответ

3

удалить $ статьи, должно использовать статьи

{Еогеасп из = $ статьи пункта = $ статьи}

Код:

{foreach from=$articles item=article} 
<tr> 
    <td width="30%">{$article.title}</td> 
    <td width="30%"><a href="{$article.link}" target="_blank">http://example.net</a></td> 
    <td width="20%">{$article.size}</td> 
    <td width="20%">{$article.count}</td> 
</tr> 
{/foreach} 
+1

да! это работает. thx – systemiv

+0

Я думаю, что у Олафа это есть. Но разве он не должен делать то же самое для $ articles в выражении FROM? - Отметьте его ответ правильно, если он работает. –

+0

@MattMoore: Нет, потому что $ articles уже существует. :) –

Смежные вопросы