2012-03-24 3 views
4

Je code suivant Smarty sur mon modèle{if} {else} ne fonctionnent pas correctement dans Smarty

{capture name="diff"} 
    {datediff timestamp=$data_base.updated_date} 
{/capture} 

{$smarty.capture.diff} | {$smarty.const.UPDATE_BLOCK_SECONDS} 

{if $smarty.capture.diff > $smarty.const.UPDATE_BLOCK_SECONDS} 
    enable update 
{else} 
    disable update 
{/if} 

Lorsque j'imprime à la fois $smarty.capture.diff et $smarty.const.UPDATE_BLOCK_SECONDS variables, ils valeur correcte de sortie (par exemple 98969 et 86400) , mais le {if} ne fonctionne toujours et la valeur d'impression "mise à jour désactiver"

Répondre

4

s'il vous plaît essayer

{if 0+$smarty.capture.diff > 0+$smarty.const.UPDATE_BLOCK_SECONDS} 
    enable update 
{else} 
    disable update 
{/if} 

ou

{if (int)$smarty.capture.diff > (int)$smarty.const.UPDATE_BLOCK_SECONDS} 
    enable update 
{else} 
    disable update 
{/if} 
+0

J'ai essayé les deux et la méthode ne fonctionne pas :( – Prakash

1
{capture name="diff"} 
    {datediff timestamp=$data_base.updated_date} 
{/capture} 

contient des espaces blancs.

{capture name="diff"}{datediff timestamp=$data_base.updated_date}{/capture} 

peut être ce que vous cherchez.

+0

ce que j'ai trouvé est que {{int) $ smarty.capture.diff} 'affiche la valeur 0, c'est pourquoi il retourne toujours false. ce problème :( – Prakash

Questions connexes