পঁচা: একাধিক শর্ত সহ যদি


120

মনে হচ্ছে বিবৃতি দিলে আমার দু'পক্ষের সমস্যা আছে।

{%if fields | length > 0 || trans_fields | length > 0 -%}

ত্রুটিটি হ'ল:

Unexpected token "punctuation" of value "|" ("name" expected) in 

আমি বুঝতে পারি না কেন এটি কাজ করে না, এটি যদি এমন হয় যে সমস্ত পাইপগুলির সাথে ডানাটি হারিয়ে গেছে।

আমি এটি চেষ্টা করেছি:

{% set count1 = fields | length %}
{% set count2 = trans_fields | length %}
{%if count1 > 0 || count2 > 0 -%}

কিন্তু যদি ব্যর্থ হয়।

তারপরে এটি চেষ্টা করে দেখুন:

{% set count1 = fields | length > 0 %}
{% set count2 = trans_fields | length > 0 %}
{%if count1 || count2 -%}

এবং এটি এখনও কাজ করে না, প্রতিবার একই ত্রুটি ...

সুতরাং ... যা আমাকে সত্যিই একটি সাধারণ প্রশ্নে নিয়ে যায়: টুইগ কি একাধিক শর্ত IF সমর্থন করে?

উত্তর:


287

আমি যদি সঠিকভাবে স্মরণ করি তবে টুইগ সমর্থন করে ||এবং &&অপারেটরদের সমর্থন করে না , তবে যথাক্রমে প্রয়োজন orএবং andব্যবহার করা দরকার । আমি দুটি স্টেটমেন্টকে আরও স্পষ্টভাবে বোঝাতেও প্রথম বন্ধনী ব্যবহার করব যদিও এটি প্রযুক্তিগতভাবে কোনও প্রয়োজন নয়।

{%if ( fields | length > 0 ) or ( trans_fields | length > 0 ) %}

প্রকাশ

Expressions can be used in {% blocks %} and ${ expressions }.

Operator    Description
==          Does the left expression equal the right expression?
+           Convert both arguments into a number and add them.
-           Convert both arguments into a number and substract them.
*           Convert both arguments into a number and multiply them.
/           Convert both arguments into a number and divide them.
%           Convert both arguments into a number and calculate the rest of the integer division.
~           Convert both arguments into a string and concatenate them.
or          True if the left or the right expression is true.
and         True if the left and the right expression is true.
not         Negate the expression.

আরও জটিল ক্রিয়াকলাপগুলির জন্য, বিভ্রান্তি এড়াতে পৃথক অভিব্যক্তিগুলি বন্ধনীতে গুটিয়ে রাখা ভাল:

{% if (foo and bar) or (fizz and (foo + bar == 3)) %}

13
এবং অবশ্যই IF ডকুমেন্টেশনটি দেখার সময় সেই দুর্দান্ত এবং সময় সাশ্রয়ী টেবিলটি খুঁজে পাওয়ার কোনও সুযোগ আমার ছিল না: twig.sensiolabs.org/doc/tags/if.html সমাধানের জন্য ধন্যবাদ!
FMaz008

5
তাদের কোডটি আরও পুঙ্খানুপুঙ্খভাবে ডকুমেন্ট করার জন্য তারা গিথুবটিতে উইকি ব্যবহার করতে ঝোঁক। যে টেবিল থেকে আসে এখানে
বেন Swinburne

! = ব্যবহার করা আমার পক্ষে কাজ করে না বলে মনে হচ্ছে (কোনও বাগ হতে পারে?): {% যদি (কী! = 'স্ট্রিং 1') বা (কী! = 'স্ট্রিং 2') বা (কী! = 'স্ট্রিং 3')%} সুতরাং আমি তাদের সবার জন্য (কী == 'স্ট্রিংএন') ব্যবহার করতে এবং আমার যা প্রয়োজন তা 'অন্য' বিবৃতিতে রেখে দিতে হয়েছিল
তিমাহ 22

notএক্সপ্রেশনটিকে অস্বীকার করার জন্য আপনাকে অপারেটরটি ব্যবহার করতে হবে ।
বেন সুইনবার্ন

1
আপনি টার্নারি অপারেটরটি ভুলে গেছেন?
জন স্মিথ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.