2012-04-16 12 views
4

は、私は2つのクラスDBIx ::クラスにhas_manyは

foreign.weirdkey => substr(self.key, 1, 9) 

にリンクされている列の部分文字列に参加...と私の生活のためにこれを示すためにhas_manyの呼び出しを構築する方法を見つけ出すことはできません。

基礎となるデータベース(Oracle表のセット)は、外部キーを定義しない固定され、私の制御の外にあります。

私は、ドキュメントを進めてきたと手動has_manyの定義の範囲内で動作するシンタックスを見つけるように見えることはできません。

ご協力いただければ幸いです。

答えて

3

このような何かが動作するはずです:あなたは、現在の行オブジェクトを持っている場合、私はそう、その後は、参加句とデータベースを使用しない場所単にに崩壊する、perlのSUBSTRを使用

__PACKAGE__->has_many(baubles => 'My::Schema::Result::Thing', sub { 
    my $args = shift; 

    return ({ 
     "$args->{foreign_alias}.weirdkey" => \"substr($args->{self_alias}.key, 1, 9)", 
    }, 
    $args->{self_rowobj} && { 
     "$args->{foreign_alias}.weirdkey" => substr($args->{self_rowobj}->key, 1, 9) 
    }) 
}); 

注意弦楽器。問題がある場合は、それを削除してください。 DBIC_TRACEは何が起きているのかを明確にすべきです。

ここにドキュメント:https://metacpan.org/pod/DBIx::Class::Relationship::Base#condition

関連する問題