Resolvi sim, resumindo, eu ja tinha feito a consistencia de datas via código, mas somente para quando ainda não havia inserido nos eventos do aluno. Pensava que seria mais facil clonar o objeto remover o evento respectivo e simular novamente a inserção, mas o clone com remove não funcionou como esperado, ele persisitia no banco, resolvi dando um continue qdo o foreach passa pelo proprio registro a ser comparado.Pois é, para mim a sobrecarga do PHP também se enquadrava quando eu fazia meu metódo funcionar com diferentes números de argumentos, ví que é bem mais alem me enganei hehe
Em 27 de abril de 2012 21:15, felipe bastos <[email protected]> escreveu: > Ok .. o que está chamando de sobrecarga não é sobrecarga :D > > E você pode verificar se ocorre o choque via SQL como eu fiz .. é mais > eficiente. A data pode ser um índice, se você tiver muitas consultas e > pouca escrita, pode ajudar na performance. > > Você já solucionou o problema ou ele ainda existe? Pergunto pq código pela > metade não dá pra saber se realmente funciona. > > Boa sorte aí! > > > Em 27 de abril de 2012 20:50, Douglas J.A.M <[email protected]>escreveu: > > Realmente não ficou claro minhas explanações, me desculpe mas a intenção >> não foi ser irônico, você me deu uma ideia com o seu código. >> >> A sobrecarga que eu fiz foi a seguinte. >> >> Quando eu faço a inserção no banco, antes faço uma filtragem de conflito >> de datas, antes estava assim: >> >> isDisponivel(data_de, data_ate).{ >> foreach($alunos->eventos as $evento){ >> // verifica datas >> if(confliteDatas($data_de1, $data_ate1, $data_de2, $data_ate2){ >> .... >> } >> } >> } >> >> Após já estar inserido, não posso usar esta função repassando a mesma >> data pois ela já está inserida no banco de dados, então o que fiz foi uma >> sobrecarga neste metódo conforma a seguir: >> >> isDiposnivel(data_de, data_ate, $evento_id){ >> foreach($alunos->eventos as $evento){ >> if($evento->id == $evento_id) >> continue; >> // verifica datas >> if(confliteDatas($data_de1, $data_ate1, $data_de2, $data_ate2){ >> .... >> } >> } >> >> Me desculpe por não ser claro e me dar um um mal entendimento nas minhas >> argumentações, sou falho nessa área >> >> Em 27 de abril de 2012 20:04, felipe bastos <[email protected]>escreveu: >> >>> Bom, não faço milagre ainda :D >>> >>> Você quer verificar só a data? Qual a dificuldade? >>> >>> Cadê a sobrecarga? Você sabe o que é sobrecarga? >>> >>> foreach ($this->eventos->where('data_de', '>=', >>> $data_de)->and_where('data_ate', '<=', $data_ate)->find_all() as $evento) { >>> >>> Sem mais detalhes é impossível ajudar. >>> >>> Ah, Pra que clone? >>> >>> Em 27 de abril de 2012 15:33, Douglas J.A.M <[email protected]>escreveu: >>> >>> De grande valia sua ajuda mas estava quereando ter que mecher aqui o >>>> minímo, fiz um incremento na função com ajuda da sobrecarga, mas seria bom >>>> também saber como clone um objeto por inteiro, ele e todos os filhos. Abri >>>> um tópico no ko forum >>>> http://forum.kohanaframework.org/discussion/10696/complete-clone-instance-orm#Item_1 >>>> >>>> public function isDisponivel($data_de, $data_ate, $evento_id = NULL) { >>>> >>>> foreach ($this->eventos->find_all() as $evento) { >>>> >>>> // se o evento passado for o mesmo que o do laço pula >>>> // utilizado para consistencias após a inserção >>>> if ($evento_id != NULL && $evento_id == $evento->id) >>>> continue; >>>> >>>> -- >>> http://felipebastosweb.com.br >>> http://twitter.com/felipebastosweb >>> >>> -- >>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana >>> Php" dos Grupos do Google. >>> Para postar neste grupo, envie um e-mail para >>> [email protected]. >>> Para cancelar a inscrição nesse grupo, envie um e-mail para >>> [email protected]. >>> Para obter mais opções, visite esse grupo em >>> http://groups.google.com/group/kohana-php?hl=pt-BR. >>> >> >> -- >> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana >> Php" dos Grupos do Google. >> Para postar neste grupo, envie um e-mail para [email protected] >> . >> Para cancelar a inscrição nesse grupo, envie um e-mail para >> [email protected]. >> Para obter mais opções, visite esse grupo em >> http://groups.google.com/group/kohana-php?hl=pt-BR. >> > > > > -- > http://felipebastosweb.com.br > http://twitter.com/felipebastosweb > > -- > Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana > Php" dos Grupos do Google. > Para postar neste grupo, envie um e-mail para [email protected]. > Para cancelar a inscrição nesse grupo, envie um e-mail para > [email protected]. > Para obter mais opções, visite esse grupo em > http://groups.google.com/group/kohana-php?hl=pt-BR. > -- Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google. Para postar neste grupo, envie um e-mail para [email protected]. Para cancelar a inscrição nesse grupo, envie um e-mail para [email protected]. Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.
