-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
/
upgrade.txt
67 lines (49 loc) · 2.92 KB
/
upgrade.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Atualizando a versão 1.0 para 1.1
=================================
Mudanças Relacionadas a Cenários de Modelos
------------------------------------
- Removido o método CModel::safeAttributes(). Atributos seguros agora são
definidos por aqueles que estão sendo validados por alguma regra conforme
definidas em CModel::rules() para o cenário em particular.
- Alterados os métodos CModel::validate(), CModel::beforeValidate() e
CModel::afterValidate(). CModel::setAttributes(),
CModel::getSafeAttributeNames(). O parâmetro 'scenario' foi removido. Você deve
obter e setar o cenário do modelo através de CModel::scenario.
- Alterado o CModel::getValidators() e removido
CModel::getValidatorsForAttribute(). CModel::getValidators() agora só retorna os
validadores que se aplicam ao cenário conforme especificado na propriedade
scenario do modelo.
- Alterados o CModel::isAttributeRequired() e
CModel::getValidatorsForAttribute(). O parâmetro scenario foi removido. Ao invés
disso, será usada a propriedade scenario do modelo.
- Removido o CHtml::scenario. CHtml usará o cenário do modelo ao invés disso.
Mudanças Relacionadas a Eager Loading para Active Record Relacional
---------------------------------------------------------------
- Por padrão uma única declaração JOIN será gerada e executada para todos os
relacionamentos envolvidos no eager loading. Se a tabela principal tiver as
suas opções `LIMIT` ou `OFFSET` definidas, ela será consultada sozinha primeiro,
seguida por outra declaração SQL que retorna todos os objetos relacionados.
Antes disso na versão 1.0.x, o comportamento padrão é que haveriam `N+1`
declarações SQL se um eager loading envolvesse `N` relacionamentos
`HAS_MANY` ou `MANY_MANY`.
Mudanças Relacionadas a Alias de Tabelas no Active Record Relacional
------------------------------------------------------------
- O alias padrão para uma tabela relacional agora é o mesmo que o nome da
relação. Anteriormente, na versão 1.0.x, o Yii por padrão automaticamente
geraria um alias de tabela para cada tabela relacional, e tínhamos de usar
o prefixo `??.` para nos referir a este alias gerado automaticamente.
- O nome do alias para a tabela principal em uma query do AR foi fixado como
sendo `t`. Anteriormente, na versão 1.0.x, era o mesmo que o nome da tabela.
Isso fará co mque o código de queries de AR existentes deixem de funcionar se
eles explicitamente especificam prefixos de coluna usando o nome da tabela.
A solução é substituir esses prefixos com 't.'.
Mudanças Relacionadas a Entrada Tabular
----------------------------------
- Não é mais válido usar `Field[$i]` para nomes de atributos, eles deveriam ser
como `[$i]Field` de modo a suportar campos do tipo array (por exemplo,
`[$i]Field[$index]`).
Outras Mudanças
-------------
- A assinatura do construtor da [CActiveRecord] mudou. O primeiro parâmetro
(a lista de atributos) foi removido.
<div class="revision">$Id$</div>