まず、私の意見を示すために使用する短いコード スニペットから始めましょう。
$title = new Zend_Form_Element_Text('title', array(
'label' => 'Title',
'required' => false,
'filters' => array(
'StringTrim',
'HtmlEntities'
),
'validators' => array(
array('StringLength', false, array(3, 100))
),
));
この重要な行は次のとおりです。
'required' => false,
つまり、入力フィールドは必須ではなく、入力せずにフォームを送信できます。ただし、これは、このフィールドに入力することを選択した場合、フィルターとバリデーターが適用されないことも意味します。
常識的に言って、それは不合理な行動です。HTML入力フィールドに関連して「必須」という言葉を理解する方法:必須ではない入力フィールドは、入力されていない場合はNULLを返す必要がありますが、ユーザーが入力することを決定した場合は、フィルターとバリデーターの両方を適用する必要があります。それが私にとって理にかなっています。あなたは私に同意しますか、それとも私の常識はそれほど一般的ではありませんか?
これが Zend_Form の動作であるため、より実用的な質問です。上記のように機能する必須フィールドを実現するにはどうすればよいですか (ユーザーが何も入力しない場合は NULL を返します)。それ以外の場合は、フィルターとバリデータが通常適用されます)。