私は口ひげに全く慣れていません、そしてこれは私がそれを試している私の最初のプロジェクトです。kohana3.2とKostacheモジュールおよび口ひげのPHP実装で使用します。
私はスポーツトーナメントのコレクションを持っており、それぞれに多くのイベントがあり、各イベントには「結果」と呼ばれる3つのエンティティがあります。私の仕事は、それらすべてを1つのテーブルに表示することです。次のテンプレートは、このテーブルを表示する方法を示しています。
{{#tournaments}}
<h2>{{name}}</h2>
<table class="event_list">
{{#events.find_all}}
<tr>
<td>{{day}}</td>
{{#outcomes.find_all}}
<td class="outcome">{{name}}</td>
{{/outcomes.find_all}}
</tr>
{{/events.find_all}}
</table>
{{/tournaments}}
そして今、私の問題、したがって質問に行きます。「結果」を示している間、私はそれぞれに追加の異なるクラスを添付する必要があります。つまり、イベントごとに3つの「結果」があり、それぞれに3つの異なるCSSクラスがあります。しかし、{{#outcomes.find_all}}ループ内では、それが最初のエンティティであるか、2番目または3番目であるかはわかりません。これについて何ができますか?
これを解決するために、関数の使用を考えていました。このビューのクラスに、すべてのイベントを「結果」としてレンダリングする関数を追加することを考えました。これは次のようになります。
{{#tournaments}}
<h2>{{name}}</h2>
<table class="event_list">
{{#events.find_all}}
<tr>
<td>{{day}}</td>
{{print_outcomes}}
</tr>
{{/events.find_all}}
</table>
{{/tournaments}}
しかし、明らかに私はその関数で「結果」のコレクションを渡す必要があり、それから私はその関数で何も渡すことができないことに気づきました。では、そのような問題は口ひげでどのように解決されたのでしょうか?
また、私がこのような非常に単純な関数を持っている場合:
public function print_outcomes(){
return "<td>aa</td>";
}
出力に出力する前にurl_encodeを通過するので、次のようになります。
<td>aa</td>
それは修正できますか?