0

Web サイト開発者としての仕事で、PyroCMS で CodeIgniter を使用しています。私よりもずっと長く 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 }}

エラーが発生します:

解析エラー: 構文エラー、C:\repos\mit-eod\addons\shared_addons\modules\mit\views\history.php の 48 行目の予期しない '{'

エラーは、PHP の echo ステートメントの php コードの行 (5 行目) にあります。行の 3 番目の開き中括弧であることが確認できます{{ mit_id }}

なぜこうなった?

4

1 に答える 1

1

PHP コードはテンプレートの一部ではなく、最初に PHP コードとして解釈されるため、PHP コードでタグを使用することはできません。コントローラーまたはモデルでロジックを実行し、DB から取得したものを $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 に答える