フォームコレクション要素で使用する次のフィールドセットを作成しました。ユーザーは任意の量のURLエイリアスをフォームに追加できます。それはうまく機能しますが、私はいくつかの問題に遭遇しました。
<?php
....
class AliasFieldset extends Fieldset implements InputFilterProviderInterface {
public function __construct()
{
parent::__construct('aliasList');
$this->setObject(new PathEntity());
$this->setName('Aliases');
$this->add(array(
'name' => 'urn',
'type' => 'Zend\Form\Element\Text'
));
}
public function getInputFilterSpecification()
{
return array(
'urn' => array(
'requried' => false,
'validators' => array(
array(
'name' => 'Uri',
)
)
)
);
}
}
Uriバリデーターに空の値を許可させることができないようです。理想的には、空の文字列アイテムを事前に除外したいのですが、フィルターは値をフィルター処理するため、アイテム自体をフィルターで除外するのには適していないようです。