我InflateColumn
定义了这样的
__PACKAGE__->inflate_column( request => { inflate => sub{ die }, deflate => sub{ die } } );
但是当我尝试将数据存储到此列时,它会毫无问题地存储。
$schema->resultset( 'Table' )->create({
request => 'value'
});
为什么inflate/deflate
没有被调用?
答案 0 :(得分:2)
deflate
是数组引用或哈希引用时,将调用 value
$schema->resultset( 'Table' )->create({
request => [ 'value' ]
});
UPD DOC
它将处理除标量引用之外的所有类型的引用。它不会处理标量值,它们会被忽略,从而传递给SQL :: Abstract。这是为了允许将原始值设置为"只是工作"。标量引用被传递到数据库进行处理,以允许诸如年份+ 1'和\“#DEFAULT'工作。
如果您希望过滤普通标量值并将其替换为其他内容,请参阅DBIx::Class::FilterColumn。