[Cascavel-pm] DBIx::Class - buscando dados de uma tabela de ligação
Donato Azevedo
donatoaz em gmail.com
Segunda Novembro 26 04:51:23 PST 2007
On Nov 26, 2007 10:38 AM, Wallace Reis <reis.wallace em gmail.com> wrote:
>
> On Nov 26, 2007 12:07 PM, Donato Azevedo <donatoaz em gmail.com> wrote:
> > 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).
>
> Existe também dois rel do tipo has_many: 'veiculos' -> 'veiculo_peca'
> e 'pecas' -> 'veiculo_peca'.
Concordo, isso foi o que eu disse que eu fiz...
>
>
> > 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;
>
> my $part = $car->nome_do_rel_has_many->first;
isso tá errado, isso nao vai pegar a peça, vai pegar o relacionamento,
desta forma eu nao posso fazer algo do tipo:
$part->descricao
pois descricao é um campo da tabela de peças, eu teria de fazer
$part->peca->descricao;
>
> #...
>
> > 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?)
>
> daquele modo você pode chamar: $part->quantidade;
Sim, mas, como disse, nao posso chamar, por exemplo, $part->descricao,
já que, no seu caso, $part é um objeto tipo VeiculoPeca e nao um Peca
mas acho que sua idéia pode ter me ajudado... acho que posso colocar
os proxies na tabela de relacionamento...
tipo
sub descricao
{
shift->peca->descricao;
}
obrigado pela atenção,
--
Donato Azevedo
Mais detalhes sobre a lista de discussão Cascavel-pm