簡體   English   中英

你能有條件地將變量傳遞給Twig嗎?

[英]Can you conditionally pass a variable to Twig

所以我正在構建一個組件,並希望能夠將值綁定到它或將其留空。 理想情況下,我想在沒有if語句的情況下使用過濾器或某種類型的三元運算符。 所以我可以在沒有明確傳遞date情況下使用它

{% if date is not defined %}
    <input type='text' name="date" value="" class="form-control date-picker" />
    <input type='hidden' name="timezone" class="timezone" />
{% else %}
    <input type='text' name="{{date.name | default("date")}}" value="{{ date.value | default("")}}" class="form-control date-picker" />
    <input type='hidden' name="timezone" class="timezone" />
{% endif %}

這是我在嘗試多個事情后最終得到的丑陋代碼。

我不能加載組件而不給它一個date

$date = '';
return $this->render('ComponentBundle:Default:datepicker.html.twig',array(
            'date' => $date,
       ));

我沒有將date傳遞給視圖時得到的錯誤是

Variable "date" does not exist in ComponentBundle:Default:datepicker.html.twig at line 10

您無法有條件地傳遞變量,但您可以在樹枝內設置和測試一些變量。 例如:

{% set var_date = date is defined and date is not empty ? date : {'name': 'date', 'value': ''} %}

<input type='text' name="{{ var_date.name }}" value="{{ var_date.value }}" class="form-control date-picker" />
<input type='hidden' name="timezone" class="timezone" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM