Erro ao salvar modelo

Fala galera beleza?

To com um problema ao salvar o modelo com :


if($model->save())

Quando é executado este comando, o Yii faz uma query salvando todos os campos que eu populei em um formulário, ele não esta considerando nesta query a primary key que é AUTO_INCREMENT.

Eu tentei forçar um valor para a prumary key, adicionando no Model rules a linha abaixo:




array('cdSolicitacao', 'default', 'setOnEmpty' => true, 'value' => 0),						



Mas ainda não obtive êxito, a query continua tentando inserir o registro sem a primary key.

Log do erro:

11:22:25.367703 error system.db.CDbCommand




Error in executing SQL: INSERT INTO `xmertool`.`solicitacoes`

(`cdCentroCusto`, `origem`, `dsJustificativaSolicitacao`, `cdSolicitacao`,

`cdModulo`, `cdMacro`, `dtSolicitacao`, `cdUsuarioSolicitante`) VALUES

(:yp0, :yp1, :yp2, :yp3, :yp4, :yp5, NOW(), :yp6)

in

C:\AppServ\www\x\xmertool\protected\controllers\SolicitacoesController.php

(75)

in C:\AppServ\www\x\xmertool\index.php (13)



Apenas com essas informações não dá pra saber ao certo o que está ocorrendo. Me parece que o problema não é causado só pelo auto_incremento.

Poste aqui a sua classe do modelo para ajudar no entendimento. Poste tmb o CREATE TABLE

Remova a primary key do rules() para testar.

Usa o beforeValidate() ou beforeSave(), para criar uma ID para o cdSolicitacao.


public function beforeSave(){


if($this->isNewRecord){

$this->cdSolicitacao= Yii::app()->db->createCommand("SELECT MAX(cdSolicitaao ) FROM solicitacoes")->queryScalar() + 1;

}


 return parent::beforeSave();

}

Mais ou menos isso.

Não acredito que essa seja a melhor solução do problema.

Essa seria a solução se o campo NÃO fosse auto_increment.

Ele precisa entender qual o motivo do erro.

Ou o modelo do banco está errado ou o código do model está errado.