0

作为网站开发人员,我在工作中使用 CodeIgniter 和 PyroCMS。一些使用 Pyro 的时间比我长得多的同事经常使用 Pyro 标签。它们似乎非常有用,即使我还不知道它们是如何工作的。无论如何,我试图在 PHP 数组中使用标签,但 Pyro 似乎不喜欢那样。

有问题的代码:

{{ eods }}
    <tr>
        <td value="{{ user_id }}" class = "span1">{{ user_id }}</td>
        <td value="{{ eod }}" class = "span2">{{ eod }}</td>
        <td value="{{ mit_id }}" class = "span2"><?php echo $this->db->get_where('mit', array('id' => {{ mit_id }})); ?></td>
        <td value="{{ date }}" class = "span2">{{ date }}</td>
        <td value="{{ time }}" class = "span2">{{ time }}</td>
    </tr>
{{ /eods }}

我得到错误:

解析错误:语法错误,第 48 行 C:\repos\mit-eod\addons\shared_addons\modules\mit\views\history.php 中的意外“{”

错误位于 PHP 回显语句中的 php 代码行(第 5 行)。我可以确认它是该行的第三个左大括号,第一个在{{ mit_id }}.

为什么会这样?

4

1 回答 1

1

您不能在 PHP 代码中使用标签,因为 PHP 代码将首先被解释为 PHP 代码,而不是模板的一部分。您应该在控制器或模型中执行逻辑,并将 $eods 变量中从数据库中获得的任何内容传递给模板。

还,

<?php echo $this->db->get_where('mit', array('id' => $thing)); ?>

将获得 MySQL(可能)结果,而不是单个值。您至少需要执行以下操作:

$var = $this->db->get_where('mit', array('id' => $thing))->row()->thing;

但如果没有找到行,则会引发错误。MySQL 连接可能会更好。

祝你好运。

于 2013-08-12T14:51:09.050 回答