[Cascavel-pm] DBIx::Class - buscando dados de uma tabela de ligação

Donato Azevedo donatoaz em gmail.com
Segunda Novembro 26 04:07:09 PST 2007


Olá pessoal,
estou com uma duvida sobre o DBIx::Class, eu ja tive este problema antes mas
acho que a forma que usei pra resolver foi meio gambiarra...

Eu tenho um relacionamento many_to_many entre veiculos e pecas, e a tabela
de relacionamento, veiculo_peca, contem alguns dados extras (alem dos ids do
veiculo e da peca).

Qual a melhor forma de buscar estes dados quando pesquisando pelas pecas de
um veiculo?

Tipo:

my $car = $schema->resultset('Veiculo')->find(1);
my $part = $car->pecas->first;

o campo quantidade é uma coluna da tabela de ligação, porém seria
interessante que o objeto $part contivesse este dado, já que está ligado ao
objeto $car... (ou não?)


O que eu estava fazendo é o seguinte:
criei um metodo em Veiculo que busca a row de ligacao, tipo:
my $relship = $car->fetch_relationship_row( $part );

que é mais ou menos assim:

sub fetch_relationship_row
{
    my $self = shift;
    my $part = shift;
    return $self->veiculo_pecas->find( $self->id, $part->id );
}


mas acho que deve ter algo mais elegante pra fazer usando proxies ou coisas
do tipo....

alguma luz?

abraços!!!

--
Donato Azevedo
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20071126/c919f419/attachment.html 


Mais detalhes sobre a lista de discussão Cascavel-pm