1
カスタムフィールドが空であるかどうかを確認するにはどうすればよいですか?Bugzilla拡張。カスタムフィールドが空であるかどうかをチェックする方法
たとえば、qa_contactが設定されていないことを確認できます。
sub object_end_of_set_all {
my ($self, $args) = @_;
my $object = $args->{'object'};
if ($object->{'bug_status'} eq 'RESOLVED') {
if ($object->{'qa_contact'} eq "") {
ThrowUserError("empty_qa_contact");
}
}
}
カスタムフィールドには同じ方法がありますか。 cf_test?
私がする必要があり、変数にカスタムフィールドを保存することを知っている:メソッドは、その値を取得したり、それが空でないかどうかを確認するために使用することができ
my $test = new Bugzilla::Field({ name => 'cf_test' });
?二つの問題を発見
は私がテーブル「バグ」は、私がカスタムフィールドに書かれたテキストが含まれているDBのmysqlので見つかった:
答えは別のフックを使用することです。この表にはqa_contactとbug_statusが含まれています。 $ args - > {'object'}でカスタムフィールドを返す理由を理解できませんか? – Alexred
どのクラスが '$ object'ですか? Bugzillaのどのバージョン? – ysth
もし私が間違っていないなら、オブジェクトはフックから取っています:Bugzilla :: Hook :: process( 'object_end_of_set_all'、 {object => $ self、params => \%field_values}); このフックは、Bugzilla :: Objectパッケージのset_allサブルーチン内に配置されます。 クラスはオブジェクトです、そうですか? – Alexred