Errrudo na hora de gerar o crud no gii

Ola pessoal.

Gostaria de saber porque gera erro:

Table "{$table->name}" has a composite primary key which is not supported by crud generator.

Agradeço

Pelo erro, o gerador de crud não suporta fazer um crud onde o modelo tem mais de um campo como chave primária.

Pelo jeito , vai ter que fazer na mão, ou, se tiver muita coisa pra gerar, criar seus templates.

É como o Daniel falou, é um erro na criação de um crud com mais de uma chave mesmo, já aconteceu comigo também e tive que fazer na mão mesmo.

<_<

E como eu faria isso?

Como eu alteraria no template do crud.

É que estou desenvolvendo uma sistema loja virtual, sei que com chave estrangeira as consulta se torna mais confiaveis.

Antigamente eu so referenciava o campo via FK e nunca tive este tipo de problema. Ahi no crud gerava as relaçoes sem problemas.

Pois sempre tive duvidas sobre chave estrageiras. Utilizo o Workbench para cria o banco e lá tem dois tipo de relaçao identificada e a nao identificada.

Alguem poderia me dizer se teria algum problema a nao indenficada.

Valew desde já…

Olha amigo a um tempo atrás fiz uma tabela com duas chaves extrangeiras que era assim:

Então nos relacionamentos dos models fiz assim:

models/perfil




	public function relations() {

    	return array(

        	'permissaos' => array(self::MANY_MANY, 'Permissao', 'permissao_perfil(perfil, permissao)'),

    	);

	}



models/permissao




	public function relations() {

    	return array(

        	'perfils' => array(self::MANY_MANY, 'Perfil', 'permissao_perfil(perfil, permissao)'),

    	);

	}



Pra inserir usei comando SQL mesmo




	public function addPermissao_Perfil($modulo, $acao) {

    	if (isset($modulo) && isset($acao)) {

        	$permissao = Permissao::model()->findByAttributes(array('modulo' => $modulo, 'acao' => $acao));

        	if ($permissao != null) {

            	$sql = 'INSERT INTO permissao_perfil(perfil,permissao) VALUES (:perfil,:permissao);';

            	$command = Yii::app()->db->createCommand($sql);

            	$command->prepare();

            	$rowsAffected = $command->execute(array(':perfil' => $this->tpus_id, ':permissao' => $permissao->idpermissao));

            	return $rowsAffected == 1;

        	}

    	}

    	return false;

	}



Não sei se vai te ajudar mais comigo funcionou perfeito, claro pra o meu caso.

ë pelo visto trabalhar com chave estranjeira é muito complicado…mais valew pelo conhecimento

Só um ponto.

No MySQL qnd se usa InnoDB e vc cria as constraints ao gerar o Model ele já faz esse trabalho do relations.

Correto amigo Cálcio, mais quando você tentar gerar o crud com alguma tabela que tenha duas ou mais chave estrangeiras, ai acontece o erro.