DBIx::Class 包装/重载列访问器

2024-01-08

使用 DBIx::Class 我试图在更新或检索列的数据时对其进行操作。例如,在它进入数据库之前我想对其进行加密,并且每当它被访问时我想对其进行解密。我正在遵循这个例子DBIx::类::手册::食谱 https://metacpan.org/module/DBIx::Class::Manual::Cookbook#Wrapping-overloading-a-column-accessor,但是我似乎无法让它工作。我已将以下内容放入我的用户架构中。为了进行测试,我只是使用名称列,我知道它没有意义:

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

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


DBIx::Class 有一个组件,称为过滤列 https://metacpan.org/module/DBIx%3a%3aClass%3a%3aFilterColumn.

CPAN 上有各种使用该组件的模块,例如DBIx::类::编码列 https://metacpan.org/module/DBIx%3a%3aClass%3a%3aEncodedColumn and 密码列 https://metacpan.org/module/DBIx%3a%3aClass%3a%3aPassphraseColumn.

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DBIx::Class 包装/重载列访问器 的相关文章

  • perl生成字符串来匹配正则表达式

    我尝试找到一种方法来生成与正则表达式匹配的字符串 例如以下正则表达式 A Z 6 6 A Z2 9 A NP Z0 9 A Z0 9 3 3 0 1 我尝试过 Cpan 上的一些 perl 模块不起作用 gt 字符串 随机 gt 正则表达式
  • perl imap 将邮件移至垃圾箱 (Mail::IMAPClient)

    我需要将所有未见的邮件移至垃圾箱 然后从收件箱中删除 my inbox imap gt select Inbox my mails imap gt unseen foreach my msgid mails imap gt set flag
  • 编写脚本时,#!/usr/bin/perl 和 #!/usr/bin/env perl 有什么区别?

    显然 这同样适用于用 python bash sh 等替代 perl 昆汀下面的答案显然是正确的 所以我接受了它 但我想我实际上的意思是 两种使用 的方式的优点和缺点是什么 调用 perl python bash 作为脚本的解释器 有人提到
  • 如何使用 Perl 从 NCBI 获取 FASTA 核苷酸格式的基因特征?

    我可以手动下载 FASTA 文件 如下所示 gt lcl CR543861 1 gene 1 ATGCTTTGGACA gt lcl CR543861 1 gene 2 GTGCGACTAAAA 通过单击 发送到 并选择 基因特征 FAST
  • 使用 perl 比较两个 Unicode 字符串

    当我运行以下代码时 它不会进入 在此处执行某些操作 部分 my a P 3 lt 1 my b P 3 lt 1 if a ne b do something here 还有另一种方法可以将 Unicode 字符串与 perl 进行比较吗
  • 如何将文本转换为标题大小写?

    我有一个文本文件 其中包含需要更改为标题大小写的标题列表 单词应以大写字母开头 但大多数冠词 连词和介词除外 例如 这个书名列表 barbarians at the gate hot flat and crowded A DAY LATE
  • Perl 单元测试只针对模块,而不针对程序吗?

    我在网上找到的文档和我拥有的书 Perl测试 或者说或者建议 Perl 的单元测试通常是在创建模块时完成的 这是真的 有没有办法使用单元测试实际程序Test More和表兄弟姐妹 当然 您可以使用测试脚本测试 更多 http search
  • Moose:属性值更改时缓存的计算结果会过期吗?

    在我们的类中 我们有一个模式 我们创建一个属性来表示 计算值 出于显而易见的原因 我们想要缓存计算值 然后当基础值之一发生变化时使缓存失效 所以我们目前有这个 package FooBar use Moose has foo gt acce
  • 如何在 perl 程序中查找打开的全局文件句柄

    我刚刚发现一个问题 我必须关闭所有打开的文件句柄才能让我的 Apache cgi 脚本继续 我将问题追溯到 Parse RecDescent usr bin env perl use strict use warnings use feat
  • OpenSSL DH 密钥太小错误

    我正在尝试使用简单的 PERL 脚本连接到封闭的服务器 空调 usr bin perl use 5 10 1 use warnings use strict use IO Socket SSL use IO Socket SSL qw de
  • 在 FOR 循环中打印唯一值

    我有两个文件 myresult 和 annotation 两个文件中的数据似乎是范围 但事实并非如此 这就是为什么我无法将其存储在数组中 我需要使用拆分运算符 以便我可以在 for 循环中使用它并进行比较 现在我需要打印 i myresul
  • MIME::Lite - 无法发送邮件 [smtp.gmail.com 不支持 SMTP auth() 命令]

    use MIME Lite use warnings use MIME Base64 use Authen SASL use MIME Lite use MIME Base64 use Authen SASL use warnings us
  • 如何将 Perl 转换为 C?

    有没有可用的工具可以将 Perl 源代码转换为 C 源代码 什么平台都可以 对此的规范答案是MJD 的 为什么不将 Perl 翻译成 C http www perl com pub a 2001 06 27 ctoperl html
  • 有没有办法匹配任意 Unicode 字母字符?

    我有一些文档经过 OCR 从 PDF 转换为 HTML 因此 他们最终会出现很多随机的 unicode 标点符号 而转换器会搞砸 即省略号等 他们还正确地有一堆非英语但仍然是字母字符 如 和俄语字符等 有没有办法制作一个匹配任何 unico
  • grep 两个分隔符之间的子字符串

    我有很多bash使用的脚本perl内的表达式grep为了提取两个分隔符之间的子字符串 例子 echo BeginMiddleEnd grep oP lt Begin End 问题是 当我将这些脚本移植到运行的平台时busybox 融合的 g
  • 使用 Cygwin 安装 CPAN GD 模块失败

    我已经尝试解决为什么 CPAN GD 模块无法使用 Cygwin 安装 2 天了 任何帮助深表感谢 谢谢 cpan install GD Going to read home xxxxxxxxxx cpan Metadata Databas
  • 从 php 执行 bash 脚本并立即输出回网页

    我有一组 bash 和 Perl 脚本 开发在 Linux Box 上部署所需的目录结构 可选 从svn导出代码 从这个源构建一个包 这在终端上运行良好 现在 我的客户请求此流程的 Web 界面 例如 某些页面上的 创建新包 按钮将一一调用
  • Text::平衡和多行 xml

    看来我有点失落了 我需要解析一个大的 大约 100 mb 且相当难看的 xml 文件 如果我使用parsefile 它返回错误 文档元素后的垃圾 但它会很乐意解析文件的较小元素 所以我决定将文件分解为元素并解析它们 由于不鼓励使用正则表达式
  • 客户端浏览器关闭时服务器端 Perl CGI 脚本中断

    我已经尝试解决一个小问题很长一段时间了 但似乎我无法解决 我编写了一个 HTML 页面 它在提交表单时调用 perl CGI 脚本 该 CGI 在服务器端执行一定数量的任务 我让脚本将这些任务的步骤打印到 HTML 页面上的 iframe
  • 为什么我的 Apache2::Log 输出用 \n 替换换行符?

    我在 apache2 mod perl 下设置了多个虚拟主机 我用的是ErrorLog指令为每个虚拟主机获取单独的错误日志 仅当我使用 Apache2 Log 时 这才按预期工作 警告 只会记录到常规错误日志中 这样就可以了 最后 但还存在

随机推荐

  • 高分子纸波纹

    我试图在按下按钮时更改元素的颜色 我希望当按下按钮并且颜色发生变化时在该元素中触发纸张波纹效果 我该怎么做呢 目标元素
  • 充当文件上传的div?

    我只是想上传或浏览 div 本身 就像作为文件输入并触发其功能 但我的问题是我对 java 脚本很陌生 并且为自己集思广益近一个小时并寻找互联网上同样的问题 所以我别无选择只能在这里提问 my code div style border 1
  • Android AsyncTask 与进度对话框取消

    在我的android应用程序中 我使用带有进度对话框的AsyncTask 请等待登录 来使用我的网页 异步任务内的Web服务功能 登录用户 当用户单击设备上的 后退 按钮时 我想关闭进度对话框并取消 AsynTask 我找不到用于中断 As
  • Swift - 从 JSON 响应创建数据模型

    我正在学习 Swift 语言 很高兴听到其他人输入的内容之一是 如何处理来自 JSON 响应的模型 例如 I have User swift model class User NSObject var user token String v
  • 自动分配spring的bean名称以防止名称冲突?

    在Spring应用程序中 如果两个程序员开发两个包 将 Repository注释为相同的类名 Spring将抛出 IllegalStateException 注解指定的bean名称 mybean 代表 bean 类 foobar packa
  • 如何从 URL 方案中获取参数。

    我在我的 iPhone 应用程序中使用 URL 方案 从一个页面将用户切换到 safari 然后从网页单击一个按钮 我将恢复到应用程序 此时 一些参数是由网页传递的 例如 myapp parameter 1 如何从我的应用程序中找到此参数
  • jQuery.ajax -always() 并不总是运行

    我正在使用 jQuery ajax 进行 REST 调用并检索一些 JSON 它按预期工作 但是 当我强制出现错误条件 例如无效 URL 时 always 方法不会触发 如果我设置 crossDomain false 或 dataType
  • Linux 文件 IO - 多线程性能 - 写入不同的文件

    我目前正在开发一个音频录制应用程序 该应用程序从网络获取最多 8 个音频流并将数据保存到磁盘 简化的 现在 每个流都由一个线程处理 gt 同一线程还在磁盘上执行保存工作 这意味着我有 8 个不同的线程在同一磁盘上执行写入操作 每个线程写入不
  • 有没有办法区分应用程序是在登录时由启动服务启动还是由用户启动? [复制]

    这个问题在这里已经有答案了 Cocoa 应用程序可以将自己添加到LSSharedFileList的登录项目列表 这将允许应用程序在用户登录时启动 但是 有没有办法判断用户是启动应用程序还是应用程序在登录时自动启动 这很有用 因为在一种情况下
  • MacOS Mojave 中未找到 ntpdate 命令

    我有一个 Bash 脚本可以更新我的 mac 时间 但自从 Mojave 更新后找不到该命令 ntpdate u time apple com return ntpdate command not found 我哪里出错了 这是重复的 请检
  • 在python中将文件从latin1转换为utf-8的最快方法

    我需要在 python 中将文件从 latin1 转换为 utf 8 的最快方法 文件很大 2G 我正在移动数据库数据 到目前为止我已经 import codecs infile codecs open tmpfile r encoding
  • ED A0 80 ED B0 80 是有效的 UTF-8 字节序列吗?

    java nio charset Charset forName utf8 decode http docs oracle com javase 7 docs api java nio charset Charset html decode
  • Java:方法名称/签名解析是否静态完成(编译时)?

    今天我遇到了一个有趣的问题 我认为这在 Java 中是不可能的 我针对 jgroups 2 6 版本编译了 java 代码 但在运行时使用了 2 12 版本 tomcat Web 应用程序部署 我收到以下错误 org jgroups Mes
  • 使 HTA 文件以管理员身份运行(提升)

    在 wsf vbs 和 js 文件中 您可以轻松地找出它们是否运行提升 如果没有 您可以轻松地制作它们 我为此编写的代码是这样的 EnsureElevatedPrivileges WScript Echo Running elevated
  • 反序列化以在运行时键入

    我正在尝试使用TypeAdapterFactory序列化和反序列化一些客户对象 我想在运行时将所有对象序列化为特定类型 所以给定一个String classpath and a JsonObject object我想将对象反序列化为实例Cl
  • C# - 方法的类型签名与 PInvoke 不兼容

    我正在尝试在 C 2010 中使用 VC 2003 dll 当我从 C 调用 dll 的方法时出现此错误 方法的类型签名与 PInvoke 不兼容 I am returning the structure from VC Code stru
  • longjmp 是如何工作的?

    我需要了解 longjmp 函数是如何工作的 我知道它的作用 但我需要知道它是如何做到的 我试图在 gdb 中禁用代码 但我无法理解一些步骤 代码是 0xb7ead420
  • 设置 boost socket.connect 的超时

    我在用boost asio connect on a tcp socket 当一切顺利时 connect立即返回 但在网络较差的情况下 connect日志等待 15 秒后超时 我不能等那么久 所以想减少超时 不幸的是 到目前为止我还没有找到
  • 将 Shell 脚本转换为 *.app 文件

    使用 Automator app 和 Platypus app 我已经能够捆绑我创建的一个简单的 shell 脚本 以在 MacBook Pro 上重新启动 wi fi 生成的两个应用程序都可以正常运行 但有一个我想纠正的明显问题 应用程序
  • DBIx::Class 包装/重载列访问器

    使用 DBIx Class 我试图在更新或检索列的数据时对其进行操作 例如 在它进入数据库之前我想对其进行加密 并且每当它被访问时我想对其进行解密 我正在遵循这个例子DBIx 类 手册 食谱 https metacpan org modul