Bom dia. Sou iniciante no Yii. Usamos a versão 1.1 na empresa.
Resumindo, estou utilizando um modal boostrap para receber os dados de um formulário onde são colocadas as horas extras dos usuários. Porém, quando o usuário insere valores errados, por exemplo, o horário de saída menor que o de entrada, o rules() do model já está configurado para exibir a mensagem que esta operação está errada. Porém, como o projeto original era para abrir uma nova página, ao invés do erro aparecer no modal, ele recarrega uma nova página com as mensagens de erro.
Como faço para a mensagem de erro do rules() aparecer ainda no meu modal.
Abaixo código da requisição ajax e da rules:
$("#menuLateral #yw5 a").click(function (event) {
event.preventDefault();
$.ajax({
method: "GET",
url: $(this).attr('href'),
success: function(response) {
$('#horas-extras-modal .modal-body').html(response);
$('#horas-extras-modal .modal-title').html("Adicionar horas extras");
$('.modal-horas-extras').modal('show');
},
error: function(error) {
bootbox.alert("Ocorreu um erro inesperado. Favor contactar desenvolvimento.");
}
});
});
Rules:
public function rules() {
return array(
array(‘Entrada, Saida, usuarioId, Tipo, Atividade’, ‘required’),
array(‘usuarioId’, ‘numerical’, ‘integerOnly’ => true),
array(‘Observacao’, ‘length’, ‘max’ => 1000),
array(‘HorasTrabalhadas, Saida, Atividade, intervaloSearch, MotivoFolga, Observacao’, ‘safe’),
array(‘usuarioId’, ‘compare’, ‘compareValue’ => ‘0’, ‘operator’ => ‘>’, ‘message’ => ‘Defina o Usuário’),
array(‘Saida’, ‘compare’, ‘compareAttribute’ => ‘Entrada’, ‘operator’ => ‘>’, ‘message’ => ‘Horário de Saída deve ser maior que de Entrada’),
array(‘Entrada’, ‘compare’, ‘compareAttribute’ => “Now”, ‘operator’ => ‘<’, ‘message’ => ‘Não é permitido agendar um período futuro’),
array(‘controleHoraId, Entrada, MotivoFolga, Saida, Observacao, Atividade, usuarioId, searchGrupoId’, ‘safe’, ‘on’ => ‘search’),
);
}