supervaleha
@supervaleha
Web-development

Yii2. Почему возникает проблема именем таблицы?

Всем привет.

Столкнулся со странным поведением быть может ответ прост - но я не могу понять, в чем дело.
Проект на Yii2. Есть некоторые модели со след. указанием имени таблицы:
public static function tableName()
    {
        return parent::getDbName() . '.{{'.parent::getTablePrefix().'user}}';
    }

Методы getDbName и getTablePrefix возвращают соотв. имя БД - например,
`mydb`
и префикс (в моем случае - пустота).

При запросе в некоторых местах (не всех, работающих с моделью) получаю следующую ошибку:
The SQL being executed was: SELECT EXISTS(SELECT * FROM `mydb`.`user` WHERE ({{mydb.`user`}}.`id`=18))


Как я понимаю - запрос идет в БД вместе с {{ . . . }}. Если с имени таблицы убрать данную конструкцию - ошибка исчезает - но это не есть хорошим решением.

К тому же проблема встречается в разных моделях.

В чем может быть проблема. Спасибо.
  • Вопрос задан
  • 211 просмотров
Решения вопроса 1
AlexMaxTM
@AlexMaxTM
не надо использовать parent::getTablePrefix()
Для префикса используется '{{%user}}'
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@BorisKorobkov Куратор тега MySQL
Web developer
Если строите SQL вручную, то используйте https://github.com/yiisoft/yii2/blob/master/framew...
Если ActiveRecord или QueryBuilder, то укажите здесь свой код.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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