yiiapi/docs/guide/zh_tw/upgrade.txt

(完整代码) 2KB

從版本 1.0 升級到 1.1
=================================

與 Model Scenarios 相關的改變
------------------------------------

- 刪除了 CModel::safeAttributes()。安全屬性被定義為由 CModel::rules() 為特定場景指定的規則來驗證。

- 改變了 CModel::validate(), CModel::beforeValidate() 和 CModel::afterValidate()。 CModel::setAttributes(), CModel::getSafeAttributeNames() 參數 'scenario' 被刪除。你必須透過 CModel::scenario 來存取它。

- 改變了 CModel::getValidators() 並刪除了 CModel::getValidatorsForAttribute()。CModel::getValidators() 現在只回傳適用於 Model 指定的 scenario 的驗證器。

- 改變了 CModel::isAttributeRequired() 和 CModel::getValidatorsForAttribute()。Scenario 參數被刪除,改成使用 Model 的 scenario 屬性。

- 刪除了 CHtml::scenario。 CHtml 將使用 model 的 scenario 屬性。


與 Relational Active Record 的 Eager Loading 相關的改變 
---------------------------------------------------------------

- 預設上,eager 載入涉及到的所有關聯,只有一條 JOIN 述句將被產生並執行。若主要資料表有它的 `LIMIT` 或 `OFFSET` 查詢選項,它將會單獨的事先查詢,然後執行其他 SQL 述句以取回其所有關聯物件 。在版本 1.0.x 之前,預設的行為是,若一個 eager 載入涉及到 `N` 個 `HAS_MANY` 或 `MANY_MANY` 關聯,將有 `N+1`  個 SQL 語句。

與 Relational Active Record 資料表別名相關的改變 
------------------------------------------------------------

- 現在一個關聯表資料的預設別名和對應的關聯的名字相同。 在版本 1.0.x 之前,預設情況下 Yii 將自動為每個關聯資料表產生一個別名,我們必須使用前綴 `??.` 來指向自動產生的別名。

- 在 AR 查詢中的主資料表的別名固定為 `t`。在之前的版本 1.0.x,它和資料表的名字相同。在清楚的標示 column 前綴
為資料表名稱的情況下,會造成現有的 AR 查詢中斷,解決辦法是替換這些前綴為 `t.`。


與 Tabular 輸入相關的改變
----------------------------------

- 對於屬性名字,使用 `Field[$i]` 不再是有效的,它們應當類似於 `[$i]Field`,這是為了支援陣列類型的字段 (例如 `[$i]Field[$index]`)。

其他改變
-------------

- [CActiveRecord] 建構器的簽章已改變。第一個參數(屬性列表) 已刪除。

<div class="revision">$Id$</div>

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。