現在它只是看起來非常詳細:如何使FormValidator :: Simple對多個鍵使用相同的規則?
key1 => THE_SAME_RULE,
key2 => THE_SAME_RULE,
..
keyn => THE_SAME_RULE,
是否有更簡潔的方式來表達這種方式?
現在它只是看起來非常詳細:如何使FormValidator :: Simple對多個鍵使用相同的規則?
key1 => THE_SAME_RULE,
key2 => THE_SAME_RULE,
..
keyn => THE_SAME_RULE,
是否有更簡潔的方式來表達這種方式?
所以,你想一個循環,你希望它在表達式中。這要求map
。
(map { $_ => THE_SAME_RULE } qw(key1 key2 .. keyn))
這些值只是數據,所以您可以有一個額外的變量來保存規則,然後在構建規則集時引用該變量。例如:
my $email = ['NOT_BLANK', 'EMAIL_LOOSE'];
my $result = FormValidator::Simple->check($query => [
mail1 => $email,
mail2 => $email,
]);
從理論上講,你可以建立起來的規則,整個庫,然後使用該庫無處不在:
my $result = FormValidator::Simple->check($query => [
mail => $AskersRules::EMAIL,
phone => $AskersRules::PHONE,
# etc.
]);
那麼你就不必再重複自己,你必須一個用於重複使用和測試目的的中央庫。
我想你也可以這樣做:
{ ks => [ 'key1', 'key2' ] } => THE_SAME_RULE
如果這就是你追求的。從fine manual:
my $result = FormValidator::Simple->check($q => [
{ mails => ['mail1', 'mail2'] } => [ 'DUPLICATION' ],
])
最簡潔的應該是像'[mail1,mail2] => $ email',它是否支持這樣的東西? – asker
@asker:可能是我的更新中的東西?還有一些額外的語法涉及到,我不確定這是否是你要做的。我通常使用圖書館的方式,以便所有內容排列在漂亮的欄目中。 –
這很酷,讓我試試:) – asker