你不能。否则你将不得不侵入全球sfValidatorBase.
如果您以min_length错误为例,它会像这样抛出(in sfValidatorString):
throw new sfValidatorError($this, 'min_length', array('value' => $value, 'min_length' => $this->getOption('min_length')));
正如你所看到的,它需要参数value,min_length因为消息是这样定义的:
$this->addMessage('min_length', '"%value%" is too short (%min_length% characters min).');
所以它会自动将每个变量替换为%....%.
对于错误,它从(由所有验证器扩展的required那个)抛出:sfValidatorBase
throw new sfValidatorError($this, 'required');
如您所见,没有给出任何第三个参数,因此您不能配置额外的参数。如果你想这样做,你应该改变:
throw new sfValidatorError($this, 'required', array('label' => $this->getOption('label')));
但是这个更改将在 Symfony 存储库中。这sfValidatorBase在每个验证器上都得到了扩展,我不知道你如何应用这个修改。至少,您知道在哪里进行更改。