Matt S Trout wrote:
On Mon, May 21, 2007 at 08:06:48PM +0100, Richard Jones wrote:
I also think the problem is that I haven't managed to find a way to
define a relationship in Schema::Foo to a table removed by 2 levels:
You don't. You define a rel in bar and do
join => { name_of_foo_to_bar_rel => 'name_of_bar_to_baz_rel' }
then $foo->name_of_foo_to_bar_rel->name_of_bar_to_baz_rel->the_field_I_want
Well, it's still not working :-(
Here's what I have:
Schema::Foo
__PACKAGE__->belongs_to( 'bar', 'Schema::Bar', 'bar_id',
{ join_type => 'left' } );
Schema::Bar
__PACKAGE__->has_many( 'foos', 'Schema::Foo', 'bar_id',
{ join_type => 'left' } );
__PACKAGE__->belongs_to( 'baz', 'Schema::Baz', 'baz_id',
{ join_type => 'left' } );
Schema::Baz
__PACKAGE__->has_many( 'bars', 'Schema::Bar', 'baz_id',
{ join_type => 'left' });
>You don't. You define a rel in bar and do
>
>join => { name_of_foo_to_bar_rel => 'name_of_bar_to_baz_rel' }
OK, so:
name_of_foo_to_bar_rel = foos (has_many rel. in Schema::Bar)
name_of_bar_to_baz_rel = bars (has_many rel. in Schema::Baz)
In Controller:Foo:
join => [ { foos => 'bars' }, @other_relationship_names ],
Here's what I get:
Caught exception in MyApp::Controller::Search->db_lookup
"DBIx::Class::ResultSet::pager(): No such relationship foos at ...
Also tried the belongs_to rel. in Schema::Bar:
join => [ { foos => 'baz' }, @other_relationship_names ],
I've checked & re-checked, but obviously missed it. All other
relationships working fine.
--
Richard Jones
_______________________________________________
List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
Wiki: http://dbix-class.shadowcatsystems.co.uk/
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
Searchable Archive: http://www.mail-archive.com/[email protected]/