hromtoster
@hromtoster
Я сижу с хрома в тостере

Получить запись из бд, если не найдена, вернуть с другими параметрами?

Есть список отделов, с переводами на разный язык:
sections_i18n:
id, section_id, name, lang_id
имеются такие записи:
1, 1, development, NULL (NULL - стандартный перевод)
2, 1, разработка, 12 (12 - id русского языка)


Мне нужно попытаться получить перевод для русского языка, если его нет - получить стандартный перевод (с lang_id NULL).

Как это реализовать конкретно в yii2 ?

на sql знаю что примерно как-то в подобном духе:
WITH cte AS (
 select ...
)
COALESCE( SELECT cte ..)


Подскажите пожалуйста, буду очень балгодарен
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
myks92
@myks92 Куратор тега Yii
Нашёл решение — пометь вопрос ответом!
Зачем делать условия на SQL? Сделайте два запроса. Если первый запрос результат NULL , то посылаете второй запрос для значения Default.
$translation = Translation::find()->where(...)->one;
//если не нашли перевод, то по-умолчанию
if(!$translation) {
      $translation = Translation::find()->where(...)->one
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы