2016-10-20 11 views
0

にブール式の結果を渡す:小枝テンプレート内私はそうのような小枝オブジェクトに追加されますカスタム関数持た小枝機能

... 
    add_filter('get_twig', array(get_class(),'add_twig_functions')); 
... 

public static function add_twig_functions($twig) 
{ 
    $twig->addFunction(new Twig_SimpleFunction('get_table', array(get_class(), 'get_table'))); 

    return $twig; 
} 

... 

public static function get_table($cycle, $visible = true, $id = null) 
{ 
    .... 
} 

を、私はそうのようにそれを呼び出すようにしようとしています:

私はエラーを取得していますが
{{ get_table('mth', user_data.cycle = 'Monthly', 'table-mth') }} 

PHP Fatal error: Uncaught exception 'Twig_Error_Syntax' with message 'A parameter name must be a string, "Twig_Node_Expression_GetAttr" given

私の意図した結果は、ですuser_data.cycleコンテキスト変数が 'Monthly'に等しい場合、パラメータはtrueとして渡されますが、正しくは正しく実行されません。

私も私の呼び出しを変更してみました:

{{ get_table('mth', (user_data.cycle = 'Monthly'), 'table-mth') }} 

しかし、これは私だけを与える:

PHP Fatal error: Uncaught exception 'Twig_Error_Syntax' with message 'An opened parenthesis is not properly closed. Unexpected token "operator" of value "=" ("punctuation" expected with value ")")

は小枝関数にブール式を渡すことが予想方法はありますか?木材はバージョン1.1.6で、それは価値があります。私が今まで関数で拡張して見つけたすべてのドキュメントはhttp://twig.sensiolabs.org/doc/advanced.htmlですが、実際にはパラメータをカバーしていません。比較は小枝でどのように機能するかまあ、これは私だけがmisrememberingさ

答えて

0

...私は小枝で=は、PHPの==の同等であった、と小枝で==は、PHPの===の同等だったという印象を持っていたが、私は知りませんそれが間違っているからその印象を受けました。

{{ get_table('mth', (user_data.cycle == 'Monthly'), 'table-mth') }} 

は正常に動作します。無意味なトラブルシューティングが行われます。