টুইগ: ইন_আরে বা অনুরূপ সম্ভব যদি বিবৃতি?


207

আমি ট্যুইগকে টেম্প্লেটিং ইঞ্জিন হিসাবে ব্যবহার করছি এবং আমি এটি সত্যিই পছন্দ করছি। যাইহোক, এখন আমি এমন একটি পরিস্থিতিতে দৌড়েছি যা অবশ্যই আমার চেয়ে সহজতর উপায়ে সাধনযোগ্য হবে।

আমার এখন যা আছে তা হ'ল:

{% for myVar in someArray %}    
    {% set found = 0 %}
    {% for id, data in someOtherArray %}
        {% if id == myVar %}
            {{ myVar }} exists within someOtherArray.
            {% set found = 1 %} 
        {% endif %}
    {% endfor %}

    {% if found == 0 %}
        {{ myVar }} doesn't exist within someOtherArray.
    {% endif %}
{% endfor %}

আমি যেটি সন্ধান করছি তা এই জাতীয় কিছু:

{% for myVar in someArray %}    
    {% if myVar is in_array(array_keys(someOtherArray)) %}
       {{ myVar }} exists within someOtherArray.
    {% else %}
       {{ myVar }} doesn't exist within someOtherArray.
    {% endif %}
{% endfor %}

এটি সম্পাদন করার কি কোনও উপায় আছে যা আমি এখনও দেখিনি?

যদি আমার নিজের এক্সটেনশন তৈরি করা দরকার হয় তবে আমি পরীক্ষার কার্যের মধ্যে কীভাবে মাইভিআর অ্যাক্সেস করতে পারি?

আপনার সাহায্যের জন্য ধন্যবাদ!


3
Aaffael1984 এর সঠিক উত্তর রয়েছে। তবে আপনি যা করার চেষ্টা করছেন তা নিয়ন্ত্রণে করা উচিত, দৃষ্টিতে নয়! আপনার অ্যারে ফর্ম্যাট করুন এবং তারপরে সর্বোত্তম পাঠযোগ্যতার জন্য দর্শনকে একটি পরিষ্কার জিনিস দিন।
ভিভিয়েন

6
আমি মনে করি এটি সত্যিকার অর্থে প্রসঙ্গে নির্ভর করে কোন উপায়ে আরও বেশি অর্থবোধ হয়, আপনি কি ভাবেন না?
মচকান

উত্তর:


459

আপনাকে কেবল আপনার দ্বিতীয় কোড-ব্লকের দ্বিতীয় লাইনটি পরিবর্তন করতে হবে

{% if myVar is in_array(array_keys(someOtherArray)) %}

প্রতি

{% if myVar in someOtherArray|keys %}

ইন কন্টেন্টমেন্ট অপারেটর এবং একটি ফিল্টার কী যা অ্যারে কীগুলি দেয়।


109
আপনি যদি পিএইচপি-তে in_array () এর মতো অর্জন করতে চান তবে কী ফিল্টারটি বাদ দিন
বার্গি

24
+ 1 এবং অবজ্ঞা হ'ল {% if item not in array %}এবং নাও {% if not _entry.id in array %}তাই এটি এর থেকে পৃথক {% if not var is null %}
insertusernamehere

8
আপনি সংজ্ঞায়িতও ব্যবহার করতে পারেন: {% if someOtherArray.myVar is defined %}( twig.sensiolabs.org/doc/tests/defined.html )
আঁটসাঁট

90

এখানে কিছু জিনিস পরিষ্কার করতে। যে উত্তরটি গৃহীত হয়েছিল তা পিএইচপি ইন_আরে এর মতো করে না ।

পিএইচপি in_array হিসাবে একই কাজ করতে নিম্নলিখিত এক্সপ্রেশনটি ব্যবহার করুন:

{% if myVar in myArray %}

আপনি যদি এটিকে অবহেলা করতে চান তবে আপনার এটি ব্যবহার করা উচিত:

{% if myVar not in myArray %}

1
এই দুটি পয়েন্টটি 2012 সালে স্বীকৃত উত্তরের মন্তব্যে আবৃত হয়েছে বলে মনে হয় This এই উত্তরটি অতিরিক্ত কিছু যোগ করবে বলে মনে হয় না।
উইলিয়াম

7
@ উইলিয়াম এই উত্তরটি নষ্ট করে পিএইচপি করার জন্য ডগা মধ্যে সঠিক উপায় যোগ করে in_array()
এলভিজমদেব

2
@ উইলিয়ামামসটেড তাহলে সেই স্বীকৃত উত্তরটি সঠিক হওয়ার জন্য সম্পাদনা করা উচিত।
ব্যবহারকারী 1032531

3
মন্তব্যগুলিতে দেওয়া উত্তরগুলি প্রকৃত উত্তরে রূপান্তরিত করা ভাল, কারণ মন্তব্যগুলি মুছার সম্ভাবনা অনেক বেশি।
নাথন আর্থার

^ - মুছে ফেলা বা কেবল উপেক্ষা করা
সিড


10

@ জেক স্টেম্যানকে অনুসরণ করে আরেকটি উদাহরণ:

{% for key, item in row.divs %}
    {% if (key not in [1,2,9]) %} // eliminate element 1,2,9
        <li>{{ item }}</li>
    {% endif %}
{% endfor %}


0

উপরের উত্তরগুলি সঠিক হলেও, টার্নারি অপারেটরটি ব্যবহার করার সময় আমি আরও কিছু ব্যবহারকারী-বান্ধব পদ্ধতির সন্ধান পেয়েছি।

{{ attachment in item['Attachments'][0] ? 'y' : 'n' }}

যদি কারও যদি ভবিষ্যতের পূর্বে কাজ করা দরকার হয়,

{% for attachment in attachments %}
    {{ attachment in item['Attachments'][0] ? 'y' : 'n' }}
{% endfor %}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.