Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Amigos,
estou com o seguinte problema: Criei uma tabela de envio de documentos
e gostaria que assim que algum documento fosse enviado ao usuário, uma
imagem fosse salva no banco de dados num campo chamado "leitura". É
para registrar se o documento já foi lido ou não.
Depois que o documento for enviado e a imagem salva no banco (ou o
caminho da imagem), caso o usuário clique no botão "abrir," a imagem é
trocada por outra.
Alguém pode me dar uma ideia de como começar! não tenho muito tempo de
Cake :D
agradeço desde já!
abraços!
Ola,
tente detalhar melhor a trajetória que o usuário irá fazer.
Assim que conseguirmos entender realmente oq necessita ficará mais fácil para lhe ajudarmos.
abraços
O problema ficaria assim:
tenho um campo leitura do tipo tinyint. Quando o documento é criado o valor e "0", se for aberto o valor altera para "1".
Basicamente o que eu tentei fazer foi o seguinte: se o valor for "0" exibe uma imagem chamada pendente.png, se o valor for alterado para "1" muda a imagem para lido.png.
Amigo,
Amigo você descreveu seu problema e a sua solução.
você pode fazer de duas maneiras:
1) Model Callback "afterFind"
<?php
public function afterFind($results) {
foreach ($results as $key => $val) {
if (isset($val['Modelname']['column name'])) {
$results[$key]['Model name']['column name'] = ($results[$key]['Model name']['column name']==1)? 'lido.png' : 'pendente.png' ;
}
}
return $results;
}
Desse modo você só precisa exibir o campo normalmente.
2) exibido do jeito que você falou:
$image = ($campo==1)? 'lido': 'pendente';
echo $this->Html->image($image.'.jpg');
abraços
Obrigado, Eduiagami!
Estou utilizando a segunda opção!
está aparecendo as imagens, acontece que se igualar $campo = 0 todas as mensagens aparecem como lidas, se igualar a 1 aparecem como não lidas. Não está identificando lidas e não lidas!
a primeira opção não deu certo!
obrigado pela força!
Amigo,
você nao está igualando e sim verificando.
Na primeira opçao usando o callback, você faz a mesma coisa só que antes de chegar a view, assim você nao precisa colocar condicional na view.
abraços
Não sei se entendi, mas não é mais fácil você criar um campo nessa tabela.
Poderia ser um campo enviado do tipo BOOLEAN se tiver apenas 2 status.
Se for para ter mais de 2 status, pode ser um campo chamado status do tipo TINYINT.
Para organizar o código você pode criar constantes para isso, ex:
e etc... são só exemplos.