【问题标题】:codeigniter 2 and smarty 3 : multi array of stdClass results returned - how do i display these in smartycodeigniter 2 和 smarty 3:返回的 stdClass 结果的多数组 - 我如何在 smarty 中显示这些
【发布时间】:2011-09-28 05:03:59
【问题描述】:

我的 Sql 函数 getLive_projects 有这个查询 -
$query = "SELECT p.* FROM projects p WHERE 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 的输出中,结果集中返回了许多项目。

【问题讨论】:

    标签: arrays codeigniter-2 stdclass smarty3


    【解决方案1】:

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

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

    这应该可以解决问题。

    【讨论】:

    • 啊,真是个小学生的错误,深夜编码很累——吸取了教训。为老兄的回复欢呼。
    猜你喜欢
    • 2012-08-31
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 2012-06-22
    • 1970-01-01
    相关资源
    最近更新 更多