我正在检查我的某个应用程序中的不匹配用户名。
如果找到不匹配的用户名,我会将值包装在<mark>
标记中。
我希望在将其传递给我的JS之前更新我的DBIx :: Class对象的用户名值。
我目前有以下内容,这几乎是我想要但不完全的。
my $mismatch_username = check_for_mismatch_username($self, $id, 'AD');
if(defined $mismatch_username)
{
my $flagged_username = "<mark>".$info->accountname."</mark> <font color=\"red\">(Mismatch: $mismatch_username)</font>";
$info->update({accountname => $flagged_username});
}
$info = {$info->get_columns};
$self->render(json => {info => $info});
我不更新DB值非常重要。我只想更新变量的值。我目前仍在查看DBIx :: Class文档。
任何方向都表示赞赏。
答案 0 :(得分:2)
如果您不希望修改该对象,请不要修改该对象。
(当然,您可以更新字段而不使用$info->accountname(…)
保存它。但这仍然会使对象处于修改状态,其他代码可能会保存它。它也可能如果HTML标记被该字段上的验证器拒绝,则失败。)
如果您真正需要的是更改JSON中的用户名,请先生成将进入JSON的数据,然后在呈现之前更新数据中的相应字段:
my $data = { $info->get_columns };
if (defined $mismatch_username) {
$data->{accountname} = "<mark>…";
}
$self->render(json => { info => $data });