[Dbix-class] weird result_source_instance problem
Matt S Trout
dbix-class at trout.me.uk
Sun May 27 00:40:05 GMT 2007
On Sat, May 26, 2007 at 08:12:11PM +0200, Tobias Kremer wrote:
> >Wrapping clone() and compose_namespace() to overwrite the appropriate
> >key in class_mappings afterwards might do the trick?
> >
> >The problem is that DBIC keeps a reverse lookup of classes to
> >sources to
> >deal with $schema->source($classname) - and the current relationship
> >declaration style requires that.
>
> Any chance that there might be a solution to this in the near future? I
> honestly don't think I am able to patch this myself. Maybe if you
> elaborate some more on what needs to be added to DBIC to make this work.
> For instance, where would one specify a primary source for class if
> needed?
That's not the answer. The answer is just to remove the need for class-based
lookups. It'll be less typing anyway.
The trouble is it needs somebody to have a proper think about how to still
DWIM relationships - I had this basically working where you provided an
explicit join condition everywhere but people kept reporting the fact that
it didn't auto-find the PK on the other side of a class that wasn't loaded
yet as a bug and in the end I gave up.
Most of the code is actually still in there, too - if you explicitly define
all your joins and switch to using the source name instead of class name
you're probably good.
> Have there already been discussions about this or am I the first one to
> encounter these difficulties? IMHO this really is a serious issue
> because it makes using custom SQL with the result_source_instance trick
> quite unusable or at least unstable.
Alternatively, a nasty 2-line workaround -
@My::Schema::UserView::ISA = ('My::Schema::User');
$source->result_class('My::Schema::UserView');
proceed as normal :)
--
Matt S Trout Need help with your Catalyst or DBIx::Class project?
Technical Director Want a managed development or deployment platform?
Shadowcat Systems Ltd. Contact mst (at) shadowcatsystems.co.uk for a quote
http://chainsawblues.vox.com/ http://www.shadowcatsystems.co.uk/
More information about the Dbix-class
mailing list