2016-09-26 9 views
1

は、私はちょうどボルトCMSで次の構文に出くわした:もしそうでなければ、そしてct.viewless | twigのデフォルト(false)?

{% for ct in app.config.get('contenttypes') if not ct.viewless|default(false) %} 

今ループのスタートは、おなじみのPHP構文をようだが、下の部分が画像に入ってくる:今

if not ct.viewless|default(false) 

その部分は理解するのが少し難しく、コードの実際の部分は何ですか?

実際にコードのその部分は何ですか?

P.S.上記の構文は、PHPのテンプレート言語であるTwig構文です。

答えて

2

投稿したコードは、contenttypesのすべての値に対してループします。ループ内の要素の値がviewlessでないか、そのプロパティがfalseの場合、ループに入ります。 the doc of the Twig loopから

:PHPとは異なり条件

を追加

、それが壊れるか、ループ内で継続することはできません。ただし、 は、反復中にシーケンスをフィルタリングすることができ、 アイテムをスキップすることができます。次の例では、 アクティブでないすべてのユーザーをスキップ:

<ul> 
    {% for user in users if user.active %} 
     <li>{{ user.username|e }}</li> 
    {% endfor %} 
</ul> 

利点は、特殊なループ変数を反復処理しませ正しく のでカウントしないユーザーを数えるということです。 loop ループの使用時にloop.lastのようなプロパティは定義されません。

・ホープ、このヘルプ

+0

、何 'デフォルト(偽)'正確にコードにしているのですか?私はその部分にかなり従っていません!ありがとう。 –

+1

こんにちは@AlexanderSolonik、[doc](http://twig.sensiolabs.org/doc/filters/default.html)から:_デフォルトのフィルタは、値が未定義または空の場合は渡されたデフォルト値を返し、そうでない場合はあなたのコード内のvariable_ So、ビューレスプロパティが存在しないかfalseの場合は、コードブロックに入力します – Matteo

関連する問題