DBIx ::类包装/过载的列存取(DBIx::Class Wrapping/overloading

2019-09-19 15:20发布

使用DBIx ::类我试图操纵列的数据时,它被更新或检索。 例如,它进入数据库之前,我想对它进行加密,每当正在访问它,我想解密。 我下面的这个例子DBIx ::类::手册::食谱 ,但我似乎无法得到它的工作。 我把下面的我的用户模式。 为了测试我只是使用name列,我知道这是没有意义的:

__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;
}

我看不到我在做什么比菜谱说的话有什么不同。 可没有人帮助我了解我在做什么错? 谢谢!

Answer 1:

DBIx ::类具有调用组件FilterColumn 。

有使用这样的组件上CPAN各种模块DBIx ::类:: EncodedColumn和PassphraseColumn 。

如果您告诉我们您使用的情况下,是什么我们可以给你更多/更好的建议。



文章来源: DBIx::Class Wrapping/overloading a column accessor