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.