mirror of
https://github.com/yiisoft/yii.git
synced 2026-03-12 02:56:55 +01:00
68 lines
4.8 KiB
Plaintext
68 lines
4.8 KiB
Plaintext
Обновление с версии 1.0 на версию 1.1
|
||
=====================================
|
||
|
||
Изменения, связанные со сценариями модели
|
||
-----------------------------------------
|
||
|
||
- Удалён метод [safeAttributes()|CModel::safeAttributes].
|
||
Теперь безопасными атрибутами являются те, для которых объявлены соответствующие
|
||
правила валидации в методе [rules()|CModel::rules] для конкретного сценария.
|
||
|
||
- Изменены методы [validate()|CModel::validate],
|
||
[beforeValidate()|CModel::beforeValidate],
|
||
[afterValidate()|CModel::afterValidate]. Для методов
|
||
[setAttributes()|CModel::setAttributes] и
|
||
[getSafeAttributeNames()|CModel::getSafeAttributeNames]
|
||
параметр 'scenario' удалён. Получать и устанавливать сценарий модели теперь необходимо, используя
|
||
свойство [CModel::scenario].
|
||
|
||
- Изменён метод [getValidators()|CModel::getValidators] и удалён
|
||
[getValidatorsForAttribute()|CModel::getValidatorsForAttribute].
|
||
CModel::getValidators() теперь возвращает только валидаторы, применяемые к сценарию, определяемому
|
||
свойством сценария модели ([CModel::scenario]).
|
||
|
||
- Изменены методы [isAttributeRequired()|CModel::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]. Первый параметр (список атрибутов) удалён.
|
||
|
||
<div class="revision">$Id: upgrade.txt 2305 2010-08-06 10:27:11Z alexander.makarow $</div> |