Есть ли способ сравнить две переменные в Template Toolkit? - PullRequest
4 голосов
/ 12 февраля 2010
[% 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» на странице.

1 Ответ

10 голосов
/ 12 февраля 2010

У меня работает следующее:

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

Это выводит "бла". Поэтому я подозреваю, что ваши две переменные не содержат того, что вы думаете, они делают. Template Toolkit использует равенство строк для ==, поэтому, если вы сделаете:

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

Это сломается. Возможно, вам придется немного помассировать данные, чтобы они работали правильно с равенством строк.

...