2

まず、私の意見を示すために使用する短いコード スニペットから始めましょう。

$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 を返します)。それ以外の場合は、フィルターとバリデータが通常適用されます)。

4

2 に答える 2