Relacionamentos

Bom dia pessoal!!

Estou tentando fazer um relacionamento entre tabelas, mas não estou conseguindo acertar.

Já li e reli diversas vezes a pagina da documentação (http://www.yiiframework.com/doc/guide/1.1/pt_br/database.arr), mas não estou conseguindo entender como faço corretamente o relacionamento das tabelas.

Inclusive aqui no fórum, vi alguns posts falando sobre o assunto, mas não consegui resolver o meu caso.

Modelos:

usuarios




public function relations()

{

	return array(

		'modulos' => array(self::MANY_MANY, 'Modulos', 'modulos_usuarios(usuario_id,modulo_id)'),

	);

}



modulos




public function relations()

{

	return array(

		'usuarios' => array(self::MANY_MANY, 'Usuarios', 'modulos_usuarios(modulo_id,usuario_id)'),

	);

}



Quando crio o usuário, seleciono os módulos que ele pode acessar.

O usuário é salvo corretamente na tabela, mas o vínculo entre a tabela "usuario" e a tabela "modulos" que deveria ser salva na tabela "modulos_usuarios" não é efetivado.

Se alguém puder descrever os relacionamentos para mim, agradeço imensamente.

Abraço!!

Matheus,

Como ficou o código para salvar no Controller do usuário?




public function actionCreate()

{

	$model=new Usuarios;


        // Atribui a data de criação

        $model->criacao = date('Y-m-d h:m:s');


	// Uncomment the following line if AJAX validation is needed

	$this->performAjaxValidation($model);


	if(isset($_POST['Usuarios']))

	{

		$model->attributes=$_POST['Usuarios'];

		if($model->save())

			$this->redirect(array('view','id'=>$model->id));

	}


	$this->render('create',array(

		'model'=>$model,

	));

}



Buenas Pessoal!!

Consegui resolver meu problema dos relacionamentos Many_Many.

Utilizei a extensão Giix (http://www.yiiframework.com/extension/giix/) que incorpora um melhor tratamento dos relacionamento Many_Many e Has_Many diretamento no Gii.

Quando eu gerei os models e crud, a relação já veio pronta, inclusive o _form já possuía o elemento referente aos módulos no create e view do usuários. Bem fácil de instalar a extensão e igualmente para utilizar.

Bom… fica a dica ae… Giix é a melhor solução que achei para os relacionamento acima.

Obrigado a todos pela ajuda!!

Matheus Ribeiro