-3

首先:这是一个架构问题。请不要回答如何解决技术问题,这已经在几个地方完成了,fe:https ://github.com/zendframework/zf2/issues/2761

我似乎不明白。ZF2 中的表单元素不仅标记为必需,而且也是硬编码的。

示例 \Zend\Form\Element\Select

    public function getInputSpecification()
{
    $spec = array(
        'name' => $this->getName(),
        'required' => true,
    );

    if ($validator = $this->getValidator()) {
        $spec['validators'] = array(
            $validator,
        );
    }

    return $spec;
}

我只是无法理解这不是可选的。我想立即使用 ZF2 Elements,现在我必须扩展我需要使用的所有元素。

因为在我们的大多数表单中,我们都有一些可选元素,这意味着我们总是需要使用我们自己的派生类。

但这似乎是错误的,所以我希望有人能帮我解释一下。

4

1 回答 1

1

所以你告诉我们不要以技术方式回答。最终,这意味着您要争论 ZF2 给出的默认值。可以说,这使得它完全基于意见,因此应该关闭。

现在,正如 user#somenumber 告诉你的那样,在Zend\Form. 这一切都给定了默认值,坦率地说——是的,这是基于意见的——ZF2 中的默认值非常棒。

你不需要覆盖元素,你只需要覆盖所需的标志。当然,如果你想要一个全局默认值 required false 那么是的,你必须覆盖,但这就是 ZF2 的美妙之处。你可以按照你想要的方式制作一切。

默认情况下需要元素的默认值是一件好事。我很确定互联网上超过 50% 的表单元素都是必需的。因此,将要求设置为默认值是一个不错的决定。

于 2013-10-05T10:14:18.050 回答