第一:这是一个架构问题。请不要回答如何解决技术问题,这已经在几个地方做,f.e:https://github.com/zendframework/zf2/issues/2761ZF2 - 为什么表单元素总是标记为真
我似乎并没有得到它。 ZF2中的表单元素不仅被标记为必需的,而且还被硬编码。
例\ Zend的\表格\元素\选择
public function getInputSpecification()
{
$spec = array(
'name' => $this->getName(),
'required' => true,
);
if ($validator = $this->getValidator()) {
$spec['validators'] = array(
$validator,
);
}
return $spec;
}
我只是不明白使得这种不可选。我想直接使用ZF2 Elements,现在我必须扩展我需要使用的所有元素。
因为在我们大多数的形式,我们有一些可选的元素,这意味着我们总是需要使用我们自己的派生类。
但是,这似乎只是错误的,所以我希望有人能够帮助我解释。
感谢您的回答,当然您是对的,这完全是基于意见的。 我也必须道歉,因为当我写这篇文章的时候我真的很沮丧,因为ZF1需要大约5分钟的设置不在那里。当缺少某些东西时,我会寻找答案,为什么会被抛弃。 ZF2真的很棒,所以我想了解为什么要求的原因不再是一面旗子了,我想很长的路要问这个问题,因为这不是一个错误。有一个制定的理由来决定,我想学习它。 – Dready
@Dready分离来自“关注分离”原则。 “Form \ Element”中的'required'属性表示所需的HTML属性。当涉及验证时,您实际上需要将其设置在验证器中。是的,ZF2需要大量的“新”思维方式,但一旦理解,它实际上更加清晰直观。 – Sam