Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Meus amigos,
estou tentando salvar um campo no banco utilizando o Auth Session. Tenho um formulário de cadastro de documentos e preciso salvar o nome de usuário que criou o documento. Li este artigo (http://sweetthursdayweb.com/blog/?p=178) que fala sobre o assunto, porém não consegui resolver o problema!
Na minha tabela de documentos eu tenho um campo chamado usuario_id.
coloquei o método como está no artigo e o que é salvo no banco é "usuario_id".
Alguma ideia aí pessoal?
:D
abração
Entendi o raciocínio, amigo!
só mais um dúvida! tenho o seguinte código no meu controller do documento:
$usuarios = $this->Memorando->Usuario->find('list', array('fields' => 'Usuario.nome'));
$this->set(compact('usuarios'));
e a na view:
echo $this->Form->input('usuario_id');
Na hora que o usuário for cadastrar o documento aparece a lista de usuários cadastrados no banco.
Tem com implementar o código que você deu dessa forma!?
ainda tô meio em dúvida com isso...
Sim, vai aparecer um campo select com a lista, porque você solicitou uma lista pelo find('list');
E também porque o input que você informou na view foi do tipo text e não hidden que seria assim
$this->Form->input('usuario_id', array('type'=>'hidden');
Mas você não conseguiu salvar a id do usuário na sessão quando ele se loga no sistema? Isso facilitaria bastante e você poderia recuperá-la apenas com Auth.Session e "jogá-la" no formulário, com campo hidden, desta forma:
$this->Form->input('usuario_id', array('type'=>'hidden', 'value'=>$this->Auth->user('usuario_id'));
ou recuperar este usuario_id no controller e setar no $this->data antes de salvar, com:
$this->data['Usuario']['usuario_id'] = $this->Auth->user('usuario_id');
Bom, aí é você quem decide! ;)
Abraço!
Perfeito brother!
deu certo..
abração!
Mas diga-me,
1 - o "usuario_id" já está na sessão e você apenas gostaria de recuperá-lo e salvar o campo no banco
OU
2 - gostaria de adicioná-lo à sessão do usuário primeiro e depois seguir todo esse processo?
Se 1:
Use isto num campo do tipo input hidden, por exemplo! ;)
Se 2:
$this->Session->write('Usuario.usuario_id', idDoUsuario);
ou
$this->Auth->data['Usuario']['usuario_id'];
ou
$_SESSION['Usuario']['usuario_id'] = idDoUsuario
Se tentar atualizar com a tag auth do cake, o que vai lhe acontecer? Perderá a sessão. Então a única forma que encontrei foi esta!
Abraço!