Smarty显示数据库字段名称不是值

时间:2015-01-21 08:04:23

标签: php smarty

在smarty中我想显示db字段名称(列名称。)这可能吗?我只能得到价值。

{foreach from=$test key=key item=item}
{$item.column_name}
{/foreach}

3 个答案:

答案 0 :(得分:1)

使用嵌套数组。

{foreach from=$test key=key item=item}
    {foreach from=$item key=k item=i}
        {$k}: {$i} {* returns 'column_name: value' *}
    {/foreach}
{/foreach}

答案 1 :(得分:0)

试试这个会起作用:

{section name=item loop=$test}
{$test[item].column_name}
{/section}

答案 2 :(得分:0)

Smarty只是一种模板语言。关于数据库,字段名称等,它并不知道(并且它并不关心)。您可以将方法assign()用于PHP代码,以便使用您提供的名称了解某些数据。将此类数据视为template variable。然后使用模板语言功能格式化并显示您在PHP代码中的模板变量中设置的数据。它取决于您从代码传递给模板的数据以及如何组织数据。

一遍又一遍地阅读上面的段落,直到找到问题的答案。

答案很简单:如果字段名称包含在assign() - Smarty的数据结构中,那么您可以在要显示的模板中使用它们。

有时它们是您正在显示的数组的键;有时你把它们放在一个不同的变量中;这取决于。在将变量分配给print_r()之前使用Smarty来查找其结构并知道如何在模板中使用它。

示例:

PHP代码:

$resultset = $db->query("SELECT id, username, email FROM users WHERE username = 'foo'");
$row = $resultset->fetchAssoc();

$smarty->assign('userInfo', $row);
// For debug purposes only; remove it after first use
print_r($row);

print_r($row);的输出:

Array
(
    [id] => 1001
    [username] => 'foo'
    [email] => 'foo@bar.baz'
)

模板:

<ul>
{foreach from=userInfo key=field item=value}
    <li><b>{$field}</b>: {$value}</li>
{/foreach}
</ul>

浏览器中的输出(种类):

  
      
  • id :1001
  •   
  • 用户名:foo
  •   
  • 电子邮件:foo@bar.baz
  •