3

使用 DBIx::Class 我试图在更新或检索列的数据时对其进行操作。例如,在它进入数据库之前,我想对其进行加密,而每当它被访问时,我想对其进行解密。我在DBIx::Class::Manual::Cookbook中关注这个例子,但是我似乎无法让它工作。我在我的用户模式中放置了以下内容。对于测试我只是使用名称列,我知道这没有意义:

__PACKAGE__->add_columns("name" => { accessor => '_name' });

sub name {
    my $self = shift;

    # If there is an update to the column, we'll let the original accessor
    # deal with it.
    if(@_) {
        return $self->_name('test 1');
    }

    # Fetch the column value.
    my $name = $self->_name;
    $name = 'test 2';
    return $name;
}

我看不出我在做什么与食谱上说的有什么不同。谁能帮助我理解我做错了什么?谢谢!

4

1 回答 1

1

DBIx::Class 有一个名为FilterColumn的组件。

CPAN 上有各种模块使用该组件,例如DBIx::Class::EncodedColumnPassphraseColumn

如果您告诉我们您的用例是什么,我们可能会给您更多/更好的建议。

于 2012-08-10T12:18:00.317 回答