kascor
@kascor
Web-программист

В Yii 1, active record не находит таблицу в базе, а она там есть! Помечу?

Получаю такую ошибку:
CDbException
Таблица "products_to_categories", упомянутая в записи active record класса "ProductsToCategories", не найдена в базе данных.

1. Таблица "products_to_categories" в базе ЕСТЬ!
2. В классе "ProductsToCategories", название таблицы прописано ВЕРНО!
public function tableName() {
return 'products_to_categories';
}

ПОЧЕМУ!?
  • Вопрос задан
  • 597 просмотров
Решения вопроса 1
kascor
@kascor Автор вопроса
Web-программист
Проблема была в следующем:

До строки которая выдавала ошибку, было куча кода, и когда дело доходило до нее, mysql уходил в транс по ошибке SQLSTATE[HY000]: General error: 2006 Mysql server has gone away, и PDO уже ничего не выдавало, и ругалось что таблички-то нет, а на самом деле нет коннекта к базе!!!

Решением стало увеличение wait_timeout с 10 до 60, в /etc/mysql/my.cnf
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
mitaichik
@mitaichik
1. Посмотрите не переписан ли в модели метод который получает инстанс коннекшена к бд (что-то типа getDb, не помню уже)

2. Yii может кешировать схему (зависит от ваших конфигов) - если таблиц новая и кеш включен - нужно очистить кеш.
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Возможно все банально, кириллическая буква в названии? Зайдите в базу, скопируйте название и вставьте в модель.
Ответ написан
eudj1n
@eudj1n
Если проблема не в модели, попробуйте получить данные через DAO - www.yiiframework.com/doc/guide/1.1/ru/database.dao
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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