Является ли метод Doctrine_Table :: find () устаревшим?

0

У меня возникла проблема с методом Doctrine_Table::find(), поскольку он занимал исключение SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

Я решил проблему, используя Doctrine::getTable('City')->findOneById($id);, и он отлично работает.

Когда я попытался просмотреть проблему, я был удивлен, так как не было документации о методе Doctrine_Table::find() на официальном сайте

Теги:
doctrine
foreign-keys

2 ответа

0
Лучший ответ

О, мой плохой. Я раньше этого не видел, позор мне = p

В вашей таблице есть два первичных ключа (id и country_id), поэтому для метода find вам необходимо передать оба параметра методу поиска.

Вместо этого вы можете использовать магические методы:

Doctrine::getTable('City')->findOneById(1)
  • 0
    Спасибо :), я думал, что это причина, но это не имеет смысла для меня ... даже сейчас! Во всяком случае, это вещь дизайна. Поэтому я могу без проблем использовать Doctrine::getTable('City')->findOneById(1) :).
  • 0
    Я понял! Я сделал ошибку при проектировании базы данных! Извините БД Нету. Я не должен устанавливать внешний ключ в качестве основного ...
0

Начиная с версии 1.2.1, Doctrine_Table:: find() является NOT устаревшим Вы можете проверить официальную документацию на http://www.doctrine-project.org/documentation/manual/1_2/en/component-overview#table:finder-methods

Что касается ошибки "недопустимый номер параметра", это означает, что запрос имеет больше или меньше параметров, чем ожидалось, чаще всего вы использовали токен (?) и забыли добавить к нему параметр

Doctrine_Query::create()
->from('User u')
->where('u.name = ?', 'Jonh')
->andWhere('u.is_active = ?')

В примере, который я использовал, есть два токена "?", но только один параметр "jonh", он выдавал бы ту же ошибку: "Недопустимый номер параметра: количество связанных переменных не совпадает с числом токенов"

  • 0
    В моем случае я передаю один параметр , который является идентифицированным id из City , поэтому она требует прохождения каждого первичного ключа или что ??
  • 0
    Вы можете опубликовать запрос, который используете? это очень помогло бы :)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню