Twig: Как показывать контент только в том случае, если есть перевод? ⇐ Php
-
Anonymous
Twig: Как показывать контент только в том случае, если есть перевод?
{% for job in jobs %}
{% if job.subject|trans %}
{{ job.info }}
{% endif %}
{% endfor %}
У меня есть три языка перевода, только английский является обязательным. ATM задание отображается независимо от того, какой язык выбран (если не указан другой перевод, twig использует перевод en по умолчанию.
Я хочу, чтобы информация о задании отображалась только в том случае, если указан перевод задания на этот язык (если он существует в выбранном языковом стандарте). Как это возможно?
Исправлена проблема:
Проблема устранена с некоторыми возвратами и в контроллере не идеально, но работает. (isLocale($locale, $job) просто проверяет возможность перевода ORA, если у задания есть тема в данной локали) :
public function indexAction(Request $request)
{
$repository = $this->getJobRepository();
$jobs = $repository->findBy(['active' => true], ['sortOrder' => 'ASC']);
return ['jobs' => $jobs];
$locale = $request->getLocale();
$localeJobs = array();
foreach ($jobs as $job){
if($this->isLocale($locale, $job)) array_push($localeJobs, $job);
}
return ['jobs' => $localeJobs];
}
Подробнее здесь: https://stackoverflow.com/questions/646 ... n-is-given
{% for job in jobs %}
{% if job.subject|trans %}
{{ job.info }}
{% endif %}
{% endfor %}
У меня есть три языка перевода, только английский является обязательным. ATM задание отображается независимо от того, какой язык выбран (если не указан другой перевод, twig использует перевод en по умолчанию.
Я хочу, чтобы информация о задании отображалась только в том случае, если указан перевод задания на этот язык (если он существует в выбранном языковом стандарте). Как это возможно?
Исправлена проблема:
Проблема устранена с некоторыми возвратами и в контроллере не идеально, но работает. (isLocale($locale, $job) просто проверяет возможность перевода ORA, если у задания есть тема в данной локали) :
public function indexAction(Request $request)
{
$repository = $this->getJobRepository();
$jobs = $repository->findBy(['active' => true], ['sortOrder' => 'ASC']);
return ['jobs' => $jobs];
$locale = $request->getLocale();
$localeJobs = array();
foreach ($jobs as $job){
if($this->isLocale($locale, $job)) array_push($localeJobs, $job);
}
return ['jobs' => $localeJobs];
}
Подробнее здесь: https://stackoverflow.com/questions/646 ... n-is-given
Мобильная версия