为什么DBIx列没有放气?

时间:2017-01-14 11:19:22

标签: perl dbix-class

InflateColumn定义了这样的

__PACKAGE__->inflate_column( request => { inflate => sub{ die },  deflate => sub{ die } } );

但是当我尝试将数据存储到此列时,它会毫无问题地存储。

$schema->resultset( 'Table' )->create({
    request => 'value'
});

为什么inflate/deflate没有被调用?

1 个答案:

答案 0 :(得分:2)

deflate是数组引用或哈希引用

时,将调用

value

$schema->resultset( 'Table' )->create({
    request => [ 'value' ]
});

UPD DOC

  

它将处理除标量引用之外的所有类型的引用。它不会处理标量值,它们会被忽略,从而传递给SQL :: Abstract。这是为了允许将原始值设置为"只是工作"。标量引用被传递到数据库进行处理,以允许诸如年份+ 1'和\“#DEFAULT'工作。

     

如果您希望过滤普通标量值并将其替换为其他内容,请参阅DBIx::Class::FilterColumn