Sava em cascata na 0.11

2 views
Skip to first unread message

Evaldo Barbosa

unread,
Mar 31, 2010, 10:39:59 AM3/31/10
to SQLReactor Brasil
Senhores,

Alguem pode me dizer como está funcionando o save em cascata que o
Snit falou?

Silas Ribas Martins

unread,
Mar 31, 2010, 10:41:31 AM3/31/10
to sqlreact...@googlegroups.com
Salve,

Rapaz eu testei e não consegui, não sei se foi errado, tipo:

$user->name = 'Silas Ribas';
$user->endereco->logradouro = 'Rua Getulio Vargas';
$user->save();

Não rolou!

2010/3/31 Evaldo Barbosa <tryades...@gmail.com>:


> Senhores,
>
> Alguem pode me dizer como está funcionando o save em cascata que o
> Snit falou?
>

> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "SQLReactor Brasil" dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para sqlreact...@googlegroups.com.
> Para cancelar a inscrição nesse grupo, envie um e-mail para sqlreactor-bra...@googlegroups.com.
> Para obter mais opções, visite esse grupo em http://groups.google.com/group/sqlreactor-brasil?hl=pt-BR.
>
>

--
Atenciosamente (=Ô.Ô=),
Silas Ribas {Maximus_BR}

71 8892-6095 ( Celular )
71 3377-4446 ( casa )
71 3186-9057 ( trampo )

silasrm[arroba]gmail.com ( e-mail )
sil...@hotmail.com ( msn ) silasrm ( skype )

Twitter: @silasribas
Blog:silas.theducks.com.br
Site: www.silasribas.com.br
LinkedIn: http://www.linkedin.com/in/silasrm
Facebook: http://www.facebook.com/silasribas
Orkut: http://www.orkut.com.br/Main#Profile.aspx?rl=ls&uid=3392300346524829647
Salvador/BA
Linux Distro - *Ubuntu
Linux User Registered: 383742

"Quem quer vencer um obstáculo deve armar-se da força do leão e da
prudência da serpente." [Píndaro]

"Triste época em que vivemos, onde é mais fácil desintegrar um átomo
do que quebrar um preconceito" [Albert Einstein]

Evaldo Barbosa

unread,
Mar 31, 2010, 10:48:19 AM3/31/10
to sqlreact...@googlegroups.com
Eu também tô testando aki, Silas, e não tá rolando tbm.
Sem falar que parece que tem outras coisas que não tão rolando tbm. Aki tow num problema com uma FK que não tá trazendo o valor pro atributo de jeito nenhum, já vi q o reactor faz a consulta no banco perfeitinha, mas não traz pro model.

Atenciosamente,

Evaldo Barbosa
Analista de Sistemas / Desenvolvedor Web

http://www.vivaolinux.com.br/~collapse
http://www.twitter.com/evaldobarbosa
http://www.via6.com.br/evaldobarbosa


2010/3/31 Silas Ribas Martins <sil...@gmail.com>

Silas Ribas Martins

unread,
Mar 31, 2010, 11:02:21 AM3/31/10
to sqlreact...@googlegroups.com
Salve,

Puts comigo ainda não deu dessa.
Já deu um print_r ou var_dump no objeto e viu se tu ta chamando o nome
certo? Ja olhou no banco se tem valor gravado?

Valeu!

2010/3/31 Evaldo Barbosa <tryades...@gmail.com>:

Evaldo Barbosa

unread,
Mar 31, 2010, 11:07:53 AM3/31/10
to sqlreact...@googlegroups.com
Tem sim, brother, eu cadastrei o valor direto na banco.

Tô fazendo isso aqui:
$model = SQLReactor::get("PessoaModel",array(
            "filter" => array(
                array("id",$this->getId())
            ),
            "eagerload"=>array(
                "pessoaconselho->conselho" /* Chama PessoaConselhoModel */
            )
        ));

e na hora de chamar o número do conselho (de classe, ex: CREA) eu ja fiz:

$model->pessoaconselhoId;
$model->pessoaconselho->id;
$model->pessoaconselho->conselhoId;
$model->pessoaconselho->conselho->nome;

e nada tá funcionando.

Tô perdendo mó tempão com isso e até agora não descobri o que é.

Silas Ribas Martins

unread,
Mar 31, 2010, 11:16:05 AM3/31/10
to sqlreact...@googlegroups.com
Salve,

Esse $this->getId() vem de onde? Está passando certo?
PessoaConselho tem que está igual ao nome no model, se teu model tem
'PessoaConselho' voce chamando pessoaconselho e diferente.

2010/3/31 Evaldo Barbosa <tryades...@gmail.com>:

Evaldo Barbosa

unread,
Mar 31, 2010, 11:35:36 AM3/31/10
to sqlreact...@googlegroups.com
O getId tá correto, Silas, tanto que o reactor tá fazendo a consulta toda direitinho, retornando a consulta completa.
Não é a primeira vez que faço isso, porém ao trocar para a versão 0.11, justo porque queria usar o save em cascata, tô tendo esse tipo de problema.

Silas Ribas Martins

unread,
Mar 31, 2010, 11:51:45 AM3/31/10
to sqlreact...@googlegroups.com
Salve,

Eu to usando a 0.11 e não ta dando esse problema. Manda o sql gerado
ai. Ja testou o SQL gerado numa consulta via phpmyadmin ou outro
software?

2010/3/31 Evaldo Barbosa <tryades...@gmail.com>:

Evaldo Barbosa

unread,
Mar 31, 2010, 11:53:45 AM3/31/10
to sqlreact...@googlegroups.com
Ja testei sim e confirmei todos os campos.

A consulta é:
SELECT
    "_A_N_O_N_1_"."id" AS "tb_pessoa__id",
    "_A_N_O_N_1_"."cpf_cnpj" AS "tb_pessoa__cpf_cnpj",
    "_A_N_O_N_1_"."celular" AS "tb_pessoa__celular",
    "_A_N_O_N_1_"."telefone" AS "tb_pessoa__telefone",
    "_A_N_O_N_1_"."fax" AS "tb_pessoa__fax",
    "_A_N_O_N_1_"."nome" AS "tb_pessoa__nome",
    "_A_N_O_N_1_"."email" AS "tb_pessoa__email",
    "_A_N_O_N_1_"."rg_uf_expedidor" AS "tb_pessoa__rg_uf_expedidor",
    "_A_N_O_N_1_"."rg" AS "tb_pessoa__rg",
    "tb_pessoa_conselho"."id" AS "tb_pessoa_conselho__id",
    "tb_pessoa_conselho"."conselho_id" AS "tb_pessoa_conselho__conselho_id",
    "tb_pessoa_conselho"."pessoa_id" AS "tb_pessoa_conselho__pessoa_id",
    "tb_pessoa_conselho"."numero" AS "tb_pessoa_conselho__numero",
    "tb_conselho"."id" AS "tb_conselho__id",
    "tb_conselho"."descricao" AS "tb_conselho__descricao",
    "tb_conselho"."nome" AS "tb_conselho__nome"
FROM (
    SELECT
        "tb_pessoa"."id",
        "tb_pessoa"."cpf_cnpj",
        "tb_pessoa"."celular",
        "tb_pessoa"."telefone",
        "tb_pessoa"."fax",
        "tb_pessoa"."nome",
        "tb_pessoa"."email",
        "tb_pessoa"."rg_uf_expedidor",
        "tb_pessoa"."rg"
    FROM
    "tb_pessoa"
       
    WHERE
        ( "tb_pessoa"."id" = 1 )
    ORDER BY
        "tb_pessoa"."id"
   
) "_A_N_O_N_1_"

LEFT OUTER JOIN "tb_pessoa_conselho"
    ON "tb_pessoa_conselho"."pessoa_id" = "_A_N_O_N_1_"."id"
LEFT OUTER JOIN "tb_conselho"
    ON "tb_pessoa_conselho"."conselho_id" = "tb_conselho"."id"

Silas Ribas Martins

unread,
Mar 31, 2010, 11:55:05 AM3/31/10
to sqlreact...@googlegroups.com
Salve,

E retornou tudo certinho? Verificou o negocio do nome que perguntei na
relação Pessoa com PessoalConselho?

2010/3/31 Evaldo Barbosa <tryades...@gmail.com>:

Evaldo Barbosa

unread,
Mar 31, 2010, 11:56:54 AM3/31/10
to sqlreact...@googlegroups.com
Sim, brother, confirmei sim.
Na hora de imprimir a variável que ele tá com charminho! heaheahaeheah

Silas Ribas Martins

unread,
Mar 31, 2010, 12:40:25 PM3/31/10
to sqlreact...@googlegroups.com
Salve,

kkkk
puts agora lascou! kk

2010/3/31 Evaldo Barbosa <tryades...@gmail.com>:

David S. Rodrigues

unread,
Mar 31, 2010, 1:07:28 PM3/31/10
to sqlreact...@googlegroups.com
Acho que o save em cascata funciona mais ou menos assim:

$endereco = new Endereco();
$endereco->logradouro = "X";

$usuario = new Usuario();
$usuario->endereco = $endereco;
$usuario->save();
David S. Rodrigues

Silas Ribas Martins

unread,
Mar 31, 2010, 2:00:16 PM3/31/10
to sqlreact...@googlegroups.com
Salve,

Puts não testei assim...só chegando em casa pra testar desse jeito.
Ai funcionou assim?


2010/3/31 David S. Rodrigues <davi...@gmail.com>:

David S. Rodrigues

unread,
Mar 31, 2010, 2:04:40 PM3/31/10
to sqlreact...@googlegroups.com
Eu não testei, mas acho que o Rafael chegou falar sobre isso comigo por msn, então dei a sugestão.

Valeu!

Silas Ribas Martins

unread,
Mar 31, 2010, 2:10:44 PM3/31/10
to sqlreact...@googlegroups.com
Salve,

E so testando, eu mas se ele falou ta falido ops ta falado kkk
Testo em casa.

Valeu!

Evaldo Barbosa

unread,
Mar 31, 2010, 2:25:03 PM3/31/10
to sqlreact...@googlegroups.com
Bom, pelo jeito ninguém mais teve o problema que eu, né?

Me lasquei!!! Haehaehaehhae

Silas Ribas Martins

unread,
Mar 31, 2010, 2:31:02 PM3/31/10
to sqlreact...@googlegroups.com
Salve,

Até agora não, puts foda é ter que simular de longe.

2010/3/31 Evaldo Barbosa <tryades...@gmail.com>:

Evaldo Barbosa

unread,
Mar 31, 2010, 2:42:05 PM3/31/10
to sqlreact...@googlegroups.com
Quer dar uma olhada nos arquivos ai pra mim?

Silas Ribas Martins

unread,
Mar 31, 2010, 2:49:46 PM3/31/10
to sqlreact...@googlegroups.com
Salve,

Manda ai os 2 models, pra eu tentar simular aqui.

valeu!

2010/3/31 Evaldo Barbosa <tryades...@gmail.com>:

Evaldo Barbosa

unread,
Mar 31, 2010, 2:58:56 PM3/31/10
to sqlreact...@googlegroups.com
Blz, mermãozinho.

Não sei se na versão 0.11 tá sem o problema do createtables().

Tão em anexo os arquivos, só os models, fiote!
models-silas.zip

Evaldo Barbosa

unread,
Apr 1, 2010, 9:51:18 AM4/1/10
to sqlreact...@googlegroups.com
Silas, brother, resolvi a parada!

Como falei pra vc o reactor tava fazendo a consulta correta, porém ele estava colocando os registros trazidos pela backref em um array, algo assim:

$model->endereco[0]->numero

Uma determinada hora eu, já no desespero, fiz isso e deu certo!

Valeu pela atenção e pela ajuda, cara!
2010/3/31 Evaldo Barbosa <tryades...@gmail.com>

Silas Ribas Martins

unread,
Apr 1, 2010, 9:57:02 AM4/1/10
to sqlreact...@googlegroups.com
Salve,

Isso que te falei ontem cabeça. O BackRef traz um Array. E indiquei
para caso você quisese usar sem array, pesquisava pela PessoaConselho.

Sucesso!

2010/4/1 Evaldo Barbosa <tryades...@gmail.com>:

Silas Ribas Martins

unread,
Apr 1, 2010, 9:58:31 AM4/1/10
to sqlreact...@googlegroups.com
Salve,

Para o David, aquele modo não rolou, testei e ele não rolou!

2010/4/1 Silas Ribas Martins <sil...@gmail.com>:

David S. Rodrigues

unread,
Apr 1, 2010, 10:07:58 AM4/1/10
to sqlreact...@googlegroups.com
Ixi, então deve ser só por Array mesmo :/
Bom, de qualquer forma, já foi testado e as dúvidas resolvidas hehe

valeu!

Silas Ribas Martins

unread,
Apr 1, 2010, 10:10:33 AM4/1/10
to sqlreact...@googlegroups.com
Salve,

Por array? Como asim?

2010/4/1 David S. Rodrigues <davi...@gmail.com>:

> ...
>
> [Message clipped]

David S. Rodrigues

unread,
Apr 1, 2010, 10:12:02 AM4/1/10
to sqlreact...@googlegroups.com
Como o Evaldo fez, ai nos comentários.

Silas Ribas Martins

unread,
Apr 1, 2010, 10:38:52 AM4/1/10
to sqlreact...@googlegroups.com
Salve,

O Evaldo ta fazendo consulta. Ou me passei?

Valeu!

David S. Rodrigues

unread,
Apr 1, 2010, 6:15:43 PM4/1/10
to sqlreact...@googlegroups.com
Ixi, viajei agora aushauh acho que me perdi na conversa! kkk
David S. Rodrigues
Reply all
Reply to author
Forward
0 new messages