http://wiki.class-dbi.com/wiki/Overriding_autogenerated_accessorsの例に従いました
データベースに挿入する前に URL を変更したい:
package Hosting::Company;
use base 'Class::DBI';
my $class = __PACKAGE__;
$class->table('Companies');
$class->columns(Primary => 'CompanyId');
$class->columns(Others => qw/Name Url Comment/);
sub Url {
my $self = shift;
# modify URL.
if (@_) {
$_[0] = 'aaaaaaaaaaaa';
# return $self->_Url_accessor('aaaaaaaaaaaa'); - doesn't work either
}
# Back to normal Class::DBI
return $self->_Url_accessor(@_);
}
しかし、うまくいきません:
my $company = Hosting::Company->insert({ Name => 'Test', Url => 'http://http://url' });
print $company->Url, "\n";
ショー:
http://http://url
Class:DBI メーリングリストがまだ生きていたらいいのに!