1

我的 Sql 函数 getLive_projects 有这个查询 -
$query = "SELECT p.* FROM projects p WHERE p.live = 1 ORDER BY client_name ASC";
$response = $this->db->query($query)->result();

My Controller :
// 获取实时项目
$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 的输出中,结果集中返回了许多项目。

4

1 回答 1

0

你快到了!在定义项目变量的名称时,您不必包含“$”符号。将您的代码更改为:

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

这应该够了吧。

于 2011-09-28T09:40:16.273 回答