@Daaeev

Что не так с запросом?

Помогите, пожалуйста!! Уже час сижу над этим. Понятия не имею, что делать
Видел чела на Stack OverFlow с такой же проблемой, но ему не помогли((
Вот код
$questions = Question::find()
            ->joinWith('questionToTagTags')
            ->where(['questionToTagTags.tag_id' => $tag_id, 'status' => 1])
            ->andWhere(['!=', 'id', $question_id])
            ->with('comments', 'userToQuestionSubs')
            ->limit(10)
            ->all();

Вот что выдаёт
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'questionToTagTags.tag_id' in 'where clause'
The SQL being executed was: SELECT `question`.* FROM `question` LEFT JOIN `question_to_tag_tags` ON `question`.`id` = `question_to_tag_tags`.`question_id` WHERE ((`questionToTagTags`.`tag_id`=34) AND (`status`=1)) AND (`id` != 15) LIMIT 10

С ошибки можно узнать, что не найден столбец и т.д., но с таблицами у меня всё норм. Есть похожие запросы, к примеру этот работает отлично:
$questions_query = Question::find()
            ->joinWith('comments')
            ->where(['status' => 1, 'comments.question_id' => null])
            ->with('questionToTagTags.tag', 'userToQuestionSubs')
            ->orderBy('id DESC');

Вот связь

public function getQuestionToTagTags()
    {
        return $this->hasMany(QuestionToTagTags::class, ['question_id' => 'id']);
    }

  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
@KingstonKMS
В условии where правильно напишите имя таблицы.
question_to_tag_tags вместо имени связи questionToTagTags.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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