2016-03-29 12 views
1

私は週と月の曜日のリテラルを書く必要があるいくつかのテンプレートがあります。私はその後、単に変数親テンプレートの小枝設定変数

... {{ weekDay }} ... 

を使用し、私が最初に「ヘルパー」テンプレート

{% include '@.../Email/HTML/en_US/localized_day_and_month.twig' with [user_timezone] %} 

が含ま私は、これらの値を必要とするテンプレートで

{% set numDay = target.dateStop | date ("w", user_timezone) %} 
{% set daysOfWeek = {0: 'Sunday', 1: 'Monday', 2: 'Tuesday', 3: 'Wednesday', 4: 'Thursday', 5: 'Friday', 6: 'Saturday'} %} 
{% set weekDay = daysOfWeek[numDay] %} 

{% set numMonth = target.dateStop | date ("n", user_timezone) %} 
{% set months = {1: 'January', 2: 'February', 3: 'March', 4: 'April', 5: 'May', 6: 'June', 7: 'July', 8: 'August', 9: 'September', 10: 'October', 11: 'November', 12: 'December'} %} 
{% set month = months[numMonth] % 

:私は小さな小枝のファイルを作成しましたまだこのエラーが発生します:

failed: Variable "weekDay" does not exist in ".../HTML/it_IT:do_deadline_new.html.twig" at line 9

私は私がすべてのテンプレートに継承する基底クラス内の最初のスニペットが、これらの変数を移動しEDIT

私の「ローカライズされた日付の問題」へのよりよい解決策は、おそらくあります知っているが、それはここでは私のポイントではありません

それでも無視しているように見える:

{% block dateTimeVariables %} 
    {% set numDay = target.dateStop | date ("w", user_timezone) %} 
    {% set daysOfWeek = {0: 'Domenica', 1: 'Lunedì', 2: 'Martedì', 3: 'Mercoledì', 4: 'Giovedì', 5: 'Venerdì', 6: 'Sabato'} %} 
    {% set weekDay = daysOfWeek[numDay] %} 

    {% set numMonth = target.dateStop | date ("n", user_timezone) %} 
    {% set months = {1: 'gennaio', 2: 'febbraio', 3: 'marzo', 4: 'aprile', 5: 'maggio', 6: 'giugno', 7: 'luglio', 8: 'agosto', 9: 'settembre', 10: 'ottobre', 11: 'novembre', 12: 'dicembre'} %} 
    {% set month = months[numMonth] %} 
{% endblock %} 

そして、子テンプレートで

base.html.twig:

{% extends '@.../Email/HTML/it_IT/base.html.twig' %} 

そして、まだ:

[{{ group.name }}] Today at {{ target.created | date("H:i", user_timezone) }} {{ agent.name }} {{ agent.surname }} has created a file due on {{ weekDay | lower }} {{ target.dateStop | date ("d", user_timezone) }} {{ month }} at {{ target.dateStop | date ("H:i", user_timezone) }}. 
+0

? –

+0

これは1.24.0 – gioaudino

+0

@ gioaudinoでなければなりません。この問題の概要を説明するソリューションと同様に問題が解決する可能性があります:http://stackoverflow.com/a/32642249/2970321 – alexw

答えて

0

含まれているファイル私の知る限り

The include statement includes a template and returns the rendered content of that file into the current namespace.

のみレンダリングされますtwig doc :から、任意の変数:

failed: Variable "weekDay" does not exist in ".../HTML/it_IT:do_deadline_new.html.twig" at line 6

ライン6はこれですincに設定されていたludedファイルは親の名前空間に追加されません。

したがって、代わりにextendsを使用してみてください。このような何か:小枝のバージョンを使用している

parent.twig

{% set numDay = target.dateStop | date ("w", user_timezone) %} 
    {% set daysOfWeek = {0: 'Sunday', 1: 'Monday', 2: 'Tuesday', 3: 'Wednesday', 4: 'Thursday', 5: 'Friday', 6: 'Saturday'} %} 
    {% set weekDay = daysOfWeek[numDay] %} 

    {% set numMonth = target.dateStop | date ("n", user_timezone) %} 
    {% set months = {1: 'January', 2: 'February', 3: 'March', 4: 'April', 5: 'May', 6: 'June', 7: 'July', 8: 'August', 9: 'September', 10: 'October', 11: 'November', 12: 'December'} %} 
    {% set month = months[numMonth] %} 

child.twig

{% extends 'parent.twig'%} 
+0

実際にlocalized_day_and_monthを含むテンプレートは既に拡張されています別のテンプレートと多重継承はできません。私は最良の選択は、それらの変数のセッターを親テンプレートに移動し、インクルードステートメントを削除するだけです。 – gioaudino

+0

お寄せいただきありがとうございます。この回答または他の人があなたの問題を解決した場合は、それを受け入れたとしてマークしてください –

+0

私はまだそのエラーが表示されます。私は変更を表示するために質問を編集しました – gioaudino

関連する問題