5
[% IF OrgType.id == Organization.org_type_id %]selected="selected"[% END %] 

両方が同じ数に評価された場合でも機能しません。

[% IF OrgType.id == 3 %]selected="selected"[% END %] 

(つまり、テスト目的で数値をハードコーディングする)は機能します。

[% OrgType.id %] and [% Organization.org_type_id %] 

どちらもページに「3」を印刷します。

4

1 に答える 1

10

以下は私にとってはうまくいきます:

 my $tt = Template->new; 
 $tt->process( \"[% IF foo == bar %]blah[% END %]", { foo => 42, bar => 42 } );

それは「何とか」を出力します。したがって、あなたの 2 つの変数には、あなたが考えていることが含まれていないと思います。Template Toolkit は に対して文字列の等価性を使用するため==、次のようにします。

 my $tt = Template->new; 
 $tt->process( \"[% IF foo == bar %]blah[% END %]", { foo => 42, bar => "42 " } );

壊れます。文字列の等価性でデータが正しく機能するようにするには、データを少しマッサージする必要がある場合があります。

于 2010-02-12T03:10:39.437 に答える