Smarty 显示数据库字段名不是值
Smarty display database field name not value
在smarty中我想显示数据库字段名(列名)。这可能吗?我只能获取值。
{foreach from=$test key=key item=item}
{$item.column_name}
{/foreach}
使用嵌套数组。
{foreach from=$test key=key item=item}
{foreach from=$item key=k item=i}
{$k}: {$i} {* returns 'column_name: value' *}
{/foreach}
{/foreach}
试试这个它会起作用:
{section name=item loop=$test}
{$test[item].column_name}
{/section}
Smarty
只是一种模板语言。它不知道(也不关心)数据库、字段名称等。您将其方法 assign()
用于 PHP
代码中,以使用您提供的名称让它知道一些数据。将此类数据视为 template variable
。然后使用模板语言功能来格式化和显示您在 PHP
代码中的模板变量中设置的数据。将哪些数据从代码传递到模板以及如何组织这些数据取决于您。
反复阅读上面的段落,直到找到问题的答案。
答案很简单:如果字段名称包含在 assign()
到 Smarty
的数据结构中,那么您可以在要显示的模板中使用它们。
有时它们是您显示的数组的键;其他时候你把它们放在不同的变量中;这取决于。在将变量分配给 Smarty
之前使用 print_r()
了解其结构并知道如何在模板中使用它。
示例:
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
- username: foo
- email: foo@bar.baz
在smarty中我想显示数据库字段名(列名)。这可能吗?我只能获取值。
{foreach from=$test key=key item=item}
{$item.column_name}
{/foreach}
使用嵌套数组。
{foreach from=$test key=key item=item}
{foreach from=$item key=k item=i}
{$k}: {$i} {* returns 'column_name: value' *}
{/foreach}
{/foreach}
试试这个它会起作用:
{section name=item loop=$test}
{$test[item].column_name}
{/section}
Smarty
只是一种模板语言。它不知道(也不关心)数据库、字段名称等。您将其方法 assign()
用于 PHP
代码中,以使用您提供的名称让它知道一些数据。将此类数据视为 template variable
。然后使用模板语言功能来格式化和显示您在 PHP
代码中的模板变量中设置的数据。将哪些数据从代码传递到模板以及如何组织这些数据取决于您。
反复阅读上面的段落,直到找到问题的答案。
答案很简单:如果字段名称包含在 assign()
到 Smarty
的数据结构中,那么您可以在要显示的模板中使用它们。
有时它们是您显示的数组的键;其他时候你把它们放在不同的变量中;这取决于。在将变量分配给 Smarty
之前使用 print_r()
了解其结构并知道如何在模板中使用它。
示例:
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
- username: foo
- email: foo@bar.baz