[Dbix-class] Custom SQL
Gordon Irving
goraxe at goraxe.me.uk
Mon Dec 14 16:53:46 GMT 2009
On Mon, Dec 14, 2009 at 05:30:45PM +0100, Bernhard Graf wrote:
> Gordon Irving schrieb:
>
> > Where I have done this in the past
> > I have used DBIx::Class::ResultSource::View as the parent, and then load core
> > via load_components (in many cases it seems you need to load core last), then
> > set the __PACKAGE__->table_class, set a __PACKAGE->table to use as the
> > source name. I think you also need to set a __PACKAGE__->result_class to set how the
> > returned results should be blessed.
> >
> > HTH
>
> No. Not at all.
>
> You say parent is DBIx::Class::ResultSource::View, and then you set
> __PACKAGE__->table_class ... to what?
Okay some code I know works
package My::Schema::GroupSearch
use strict;
use warnings;
use base qw/DBIx::Class/; #okay so I didn't parent to ::View, different
module, sorry
__PACKAGE__->load_components('Core');
__PACKAGE__->table_class('DBIx::Class::ResultSource::View');
__PACKAGE__->table('GroupSearch');
__PACKAGE__->result_class('My::Schema::Groups');
__PACKAGE__->result_source_instance->is_virtual(1);
__PACKAGE__->result_source_instance->view_definition(q[
SELECT
me.*
FROM
groups me
WHERE
name like ?
UNION
SELECT
me.*
FROM
groups me
join historyevents on historyevents.group_id = me.id and historyevents.event_type in (1,2,3,4,5,11,12,14)
join eventtype on historyevents.event_type = eventtype.id
WHERE
filecount > 0
and short_description in ('usercomment', 'toolcomment')
and match (comments) against (?)
]);
1;
>
> When I set a table, the error message becomes:
>
> Can't locate object method "is_virtual" via package
> "DBIx::Class::ResultSource::Table" at My/Schema/Result/MyRequest.pm
> line 12.
>
> It really frustrates me, when simple things become that difficult.
>
> Bernhard Graf
What version of DBIx::Class are you using, have you made sure you actually have
DBIx::Class::ResultSource::View? Yep setting this up is a little tricky I had to
go a few rounds of asking in #dbix-class to get it working, but it does work and makes
sense in the end.
If you are still having problems please include your version of DBIx::Class and the
full code that is throwing an error.
Gordon
>
> _______________________________________________
> List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
> IRC: irc.perl.org#dbix-class
> SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
> Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk
More information about the DBIx-Class
mailing list