Kohana_Exception [ 0 ]: Cannot delete inscricao model because it is not loaded.

59 views
Skip to first unread message

Douglas J.A.M

unread,
Apr 25, 2012, 3:08:39 PM4/25/12
to kohan...@googlegroups.com
Estou passando pelo seguinte problema, alguem tem uma luz?

   $inscricao = ORM::Factory('inscricao')
                    ->where('aluno_id', '=', $parametros[0])
                    ->where('evento_id', '=', $parametros[1])
                    ->find();

            Helper_Funcoes::addLog(Request::$current->controller(), 'excluiu', $inscricao);
            $inscricao->delete();

Kohana_Exception [ 0 ]: Cannot delete inscricao model because it is not loaded.

jose antoniel de lima Lima

unread,
Apr 25, 2012, 3:10:35 PM4/25/12
to kohan...@googlegroups.com
o seu modelo inscricao não foi encontrado no banco de dados por isso não pode ser deletado.

Douglas J.A.M

unread,
Apr 25, 2012, 3:11:41 PM4/25/12
to kohan...@googlegroups.com
Foi sim, já dei um echo com exit(1) após antes do delete e retornava ele bonito.


Em 25 de abril de 2012 16:10, jose antoniel de lima Lima <ajinf...@gmail.com> escreveu:
o seu modelo inscricao não foi encontrado no banco de dados por isso não pode ser deletado.

--
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 kohan...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para kohana-php+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.

felipe bastos

unread,
Apr 25, 2012, 3:13:48 PM4/25/12
to kohan...@googlegroups.com

Melhora a logca disso ai ..

De onde veio os parametros? Estao corretos?

if($objeto-loaded())
$objeto-delete();

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/kohana-php/-/JDJimtf6mHEJ.

felipe bastos

unread,
Apr 25, 2012, 3:15:32 PM4/25/12
to kohan...@googlegroups.com

Vc ta chamando o log sem garantia alguma de que realmente vai ser deletado.

E se nao for?

Douglas J.A.M

unread,
Apr 25, 2012, 3:19:01 PM4/25/12
to Kohana Php
Foi um recurso técnico necessário tenho uma tabela many to many, e não
tem id, então passo  idtabela1-idtabela2.
Eu garanto que ele existe.




Tentei conforme disse mas como não ta loaded, nem entra no delete, o
registro continua.




Nem assim funciona




ORM::Factory('inscricao')
                    ->where('aluno_id', '=', $parametros[0])
                    ->where('evento_id', '=', $parametros[1])
                    ->delete();

On 25 abr, 16:15, felipe bastos <felipe...@gmail.com> wrote:
> Vc ta chamando o log sem garantia alguma de que realmente vai ser deletado.
>
> E se nao for?
> Em 25/04/2012 16:13, "felipe bastos" <felipe...@gmail.com> escreveu:
>
>
>
>
>
>
>
> > Melhora a logca disso ai ..
>
> > De onde veio os parametros? Estao corretos?
>
> > if($objeto-loaded())
> > $objeto-delete();

felipe bastos

unread,
Apr 25, 2012, 3:20:53 PM4/25/12
to kohan...@googlegroups.com

Douglas .. o loaded garante que foi achado ..

Se nao carregou, nao tem o que deletar. Sacou?

Douglas J.A.M

unread,
Apr 25, 2012, 3:24:34 PM4/25/12
to kohan...@googlegroups.com
mas eu de um 

echo $inscricao->toString();
exit(1);

antes do delete  e exibiu perfeitamente, ta é loco o kohana...

Fiz outra maneira, criei uma column id na tabela many to many e fiz convencionalmente por ela.

$inscricao = ORM::Factory('inscricao', $id);
$inscricao->delete();

Obrigado pelo toque ai da garantia de deleção ou não, mas nunca vi dar erro hehe, como vc faz, 
teria como eu pegar a mensagem de erro tipo um try catch do hibernate  e personalizar as mensagens?

if($inscricao->delete(){
   ... adiciona no log
}

felipe bastos

unread,
Apr 25, 2012, 3:26:46 PM4/25/12
to kohan...@googlegroups.com

Ah ta .. acho que entendi ..

Vc tem de usar o remove ...

Alunos NxN inscricoes

$aluno-remove('incricoes', $inscricao);

Mas antes vc confere com o has()

if($aluno-has('inscricoes', $inscricao))
   $aluno-remove(....)

Talvez seja necessario colocar as foreign_keys no model pois o kohana nao pega legal plural em portugues de "ao" "....."oes"

Model - inscricoes
Foreign_key - aluno_id
Throws - tabela NxN

É isso?

Message has been deleted

felipe bastos

unread,
Apr 25, 2012, 3:31:16 PM4/25/12
to kohan...@googlegroups.com

Eu sempre uso loaded() antes de alterar ou apagar algo ..

Além disso boto if em save e delete .. vai que acontece um problema no banco e não é salvado/deletado

Em NxN tem de usar has() pra ver se existe o relacionamento. E remove o relacionamento com remove(). Dá uma checada no guide do ORM.

Com isso acho que vc resolve o problema

Douglas J.A.M

unread,
Apr 25, 2012, 3:37:24 PM4/25/12
to kohan...@googlegroups.com
Já resolvi adicionando o ID e carregando como disse encima, funcionou, deixa pra la os detalhes, obrigado a todos

$inscricao = ORM::Factory('inscricao', $id);
if($inscricao->delete){

felipe bastos

unread,
Apr 25, 2012, 3:42:48 PM4/25/12
to kohan...@googlegroups.com
Nesse caso, fez bem em transformar em uma entidade.

Faça sempre uma boa modelagem antes de sair codificando.

Reply all
Reply to author
Forward
0 new messages