ActiveRecord não salvando algumas colunas da tabela

Fala moçada!

Me aconteceu algo curioso recentemente:

Estava codando algumas telas mais simples, que não necessitavam de um maior controle do método "rules".

O fato é que mesmo mandando model->save(false), ele ignorava a validação, porém não salvava no banco.

Verifiquei então que somente os atributos listados no "rules", que estavam sendo salvos.

Ora, se a validação não serve pra nada (nesse caso), porque salvar mediante obrigação de preenchimento do rules?

Obtive essa afirmação após deixar apenas alguns atributos no rules, e comprovei o fato.

Alguma ideia do que pode ser? Seria algum bug do framework? :huh:

[]s

@huntzrlz

Veja se há algum ‘on’=>‘scenario’ nas suas rules.

Somente os campos que tiverem como “safe” terão atribuição em massa : $model->attributes = $_POST[‘FORM’];

Atributos que não aparecem em qualquer regra de validação não são copiados para o model

Como alternativa você também pode chamar o metodo $model->validate() antes de salvar

Faz como o Clayton disse, verifica os attributos que não estão setados como safe no rules().

É isso aí galera, acertaram em cheio! :lol:

Mesmo sem requisitar a validação, é necessário ao menos preencher os atributos como safe.

Junto a isso, resolveu uma outra dúvida, minha, antiga aqui no fórum:

http://www.yiiframework.com/forum/index.php/topic/31590-csafevalidator-x-cunsafevalidator/page__p__152229#entry152229