Доктрина тройных кавычек sql alias
У меня следующая ошибка sql:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'a.`role`' in 'field list'
Мой выбор доктрины
$query->select('a.role AS role');
Когда я смотрю на ошибку Symfony, я вижу, что доктрина превращает a.role в a
,role
,
Здесь полный оператор SQL =
at Doctrine_Connection->execute('SELECT `a`.```role``` AS `a__0`, `a`.`role` AS `a__0` FROM `offer` `o` INNER JOIN `account` `a` *******)
1 ответ
Решение
Лучше всего даже не использовать кавычки. Единственный раз, когда они необходимы, это когда вы используете таблицы, которые являются зарезервированными словами, и в первую очередь рекомендуется не делать этого.
Отключите цитирование с помощью quote_identifier
атрибут в вашем database.yml. Пример вывода приведен здесь.
Пример database.yml:
default:
class: sfDoctrineDatabase
param:
dsn: mysql:dbname=database_name;host=localhost
username: username
password: password
attributes:
quote_identifier: false
use_native_enum: false
validate: all
default_table_charset: utf8
default_table_collate: utf8_general_ci