Последняя стабильная версия: 1.1.3

Полное руководство по Yii

Система Orphus
English | Russian Перевод завершен

Обновление с версии 1.0 на версию 1.1

Изменения, связанные со сценариями модели

  • Удален метод safeAttributes(). Теперь, чтобы быть валидированными, безопасные атрибуты определяются правилами, определенными в методе rules() для конкретного сценария.

  • Изменены методы validate(), beforeValidate(), afterValidate(). setAttributes(), getSafeAttributeNames() и параметр 'scenario' удалены. Вы должны получать и устанавливать сценарий модели через свойство CModel::scenario.

  • Изменён метод getValidators() и удалён getValidatorsForAttribute(). CModel::getValidators() теперь возвращает только валидаторы, применяемые к сценарию, определенному свойством сценария модели (CModel::scenario).

  • Изменены методы isAttributeRequired() и CModel::getValidatorsForAttribute(). Параметр сценария удален. Вместо него следует использовать свойство сценария модели.

  • Удалено свойство CHtml::scenario. CHtml теперь использует сценарий, указанный в модели.

Изменения, связанные с 'жадной' загрузкой для отношений Active Record

  • По умолчанию для всех отношений, включенных в 'жадную' загрузку, будет сгенерировано и выполнено одно выражение с использованием JOIN. Если в основной таблице есть опции запроса LIMIT или OFFSET, то сначала будет выполнен этот запрос, а затем другой SQL-запрос, который возвращает все связанные объекты. Раньше, в версии 1.0.x, по умолчанию вызывалось N+1 SQL-запросов, если 'жадная' загрузка включала N отношений HAS_MANY или MANY_MANY.

Изменения, связанные с псевдонимами таблиц в отношениях Active Record

  • Теперь псевдоним по умолчанию для связанной таблицы такой же, как и соответствующее имя отношения. Ранее, в версии 1.0.x, по умолчанию Yii автоматически генерировал псевдоним таблицы для каждой связанной таблицы, и мы должны были использовать префикс ??. для ссылки на этот автоматически сгенерированный псевдоним.

  • Псевдоним для главной таблицы в AR запросе теперь всегда равен t. В версии 1.0.x, он соответствовал имени таблицы. Данное изменение ломает код существующих запросов AR в том случае, если в качестве псевдонима было использовано имя таблицы. Решение — заменить такие псевдонимы на 't.'.

Изменения, связанные с табличным (пакетным) вводом данных

  • Для имен полей использование записи вида поле[$i] больше неверно. Они должны выглядеть так — [$i]поле, чтобы была возможность поддержки множественного ввода однотипных полей (например, [$i]поле[$index]).

Другие изменения

  • Изменён конструктор CActiveRecord. Первый параметр (список атрибутов) убран.
$Id: upgrade.txt 2305 2010-08-06 10:27:11Z alexander.makarow $