0

Catalyst プロジェクトのスキーマに新しい関係を追加しました。

__PACKAGE__->has_many(
    'messageslog' => "myproject::Schema::Result::MessagesLog",
    sub {
    my $args = shift;
    return {
        "$args->{foreign_alias}.from" => "$args->{self_alias}.msisdn",
        "$args->{foreign_alias}.service_id" => "3",
        "$args->{foreign_alias}.date_time" => {between => ["2013-01-01 00:00:00", "2013-   01-05 23:59:59"]}
        };
    }
);

私がリクエストするとき:

$c->model('DB::TableClass')->search({})->hashref_array;

それは完全に機能します。

しかし、次のような検索パラメーターを挿入する必要があります。

__PACKAGE__->has_many(
    'messageslog' => "myproject::Schema::Result::MessagesLog",
    sub {
    my $args = shift;
    return {
        "$args->{foreign_alias}.from" => "$args->{self_alias}.msisdn",
        "$args->{foreign_alias}.service_id" => "$args->{params}->{id}",
        "$args->{foreign_alias}.date_time" => {between => $args->{params}->{dates}}
        };
    }
);
$c->model('DB::TableClass')->search({}, {
    join => 'messageslog',
    -params => {id => 3, dates => ["2013-01-01 00:00:00", "2013-01-05 23:59:59"]}
})->hashref_array;

これどうやってするの?

4

1 に答える 1

1

リレーションシップの代わりに ResultSet にメソッドを追加する方法については、Cookbook/Predefined-searches を参照してください。

于 2013-02-05T16:52:01.643 に答える