Оновлення з версії 1.0 до версії 1.1

1. Зміни, повʼязані із сценаріями моделі

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

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

  • Змінений метод getValidators() та видалений getValidatorsForAttribute(). CModel::getValidators() відтепер повертає тільки валідатори, які застосовуються до сценарію, визначеному властивістю сценарія моделі (CModel::scenario).

  • Змінені методи isAttributeRequired() та CModel::getValidatorsForAttribute(). Параметр сценарія видалений. Замість нього слід використовувати властивість сценарія моделі.

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

2. Зміни, повʼязані із 'жадібним' завантаженням для відношень Active Record

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

3. Зміни, повʼязані із псевдонімами таблиць у відношеннях Active Record

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

  • Псевдонім для головної таблиці у AR запиті відтепер завжди рівен t. У версії 1.0.x, він відповідав імені таблиці. Дана зміна ламає код існуючих запитів AR у тому випадку, коли у якості псевдоніма було використано імʼя таблиці. Рішення — замінити такі псевдоніми на 't.'.

4. Зміни, повʼязані із табличним (пакетним) введенням даних

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

5. Інші зміни

  • Змінений конструктор CActiveRecord. Перший параметр (список атрибутів) прибраний.

Be the first person to leave a comment

Please to leave your comment.