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.
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,
));
}
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.