Почему не работает запрос в yii2?

Здравствуйте. У меня есть 2-е модели: Заявка (Check) и Ремонт (Repair). Они связаны между собой при помощи промежуточной таблицы CheckList

В таблице CheckList содержатся следующие поля:
  • id
  • check_id
  • repair_id
  • is_main

Я хочу получить ремонт по данной заявке (с условием is_main = 0). Делаю такой запрос.
$re_repair = Repair::find()
            ->leftJoin('CheckList', 'CheckList.check_id = ' . $check->id)
            ->where(['CheckList.is_main' => 0])
            ->all();


На что получаю ошибку
Смотреть ошибку

Error Info: Array
(
    [0] => 42000
    [1] => 1064
    [2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'check WHERE `CheckList`.`is_main`=0' at line 1
)


Пожалуйста помогите разобраться в чем ошибка.
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
имя таблицы Repair не вставили
->leftJoin('CheckList', 'CheckList.check_id = repair_table_name.' . $check->id)

проверьте имена таблиц, что бы совпадали
Ответ написан
Комментировать
DaniLaFokc
@DaniLaFokc Автор вопроса
В итоге оказалось, что я написал какой-то бред.

Сделал следующим образом:
$re_repair = Repair::find()
            ->leftJoin('CheckList', 'CheckList.repair_id = Repair.id')
            ->leftJoin('Check', 'Check.id = CheckList.check_id')
            ->where(['CheckList.is_main' => 0])
            ->andWhere(['Check.id' => $check->id])
            ->one();
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы