Доктрина тройных кавычек 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
Другие вопросы по тегам