chr*_*ala 5 zend-form zend-framework2
我有5个文本表格
$number1 = new Text('number-1');
$number2 = new Text('number-2');
$number3 = new Text('number-3');
....
Run Code Online (Sandbox Code Playgroud)
与相对过滤器
foreach(...)
$input = new Input($elementName);
$validator = new ValidatorChain();
$validator->addByName('Int')
->addByName('Between', array(
'min'=>0,
'max'=>$this->maxAllowedTicket,
'inclusive'=>true));
$filter = new FilterChain();
$filter->attachByName('Int');
$input->setValidatorChain($validator);
$input->setFilterChain($filter);
Run Code Online (Sandbox Code Playgroud)
我希望这3个表单中只有一个可以包含一个不同于0的值.然后有两个可能的错误.
太多了
$data['number1'] = 5;
$data['number2'] = 5;
$data['number3'] = 0;
$data['number4'] = 5;
$data['number5'] = 0;
Run Code Online (Sandbox Code Playgroud)
没有号码
$data['number1'] = 0;
$data['number2'] = 0;
$data['number3'] = 0;
$data['number4'] = 0;
$data['number5'] = 0;
Run Code Online (Sandbox Code Playgroud)
如何同时验证这多个字段?
And*_*den 17
你需要编写自己的Validator类才能这样做.isValid()新验证类的方法还会接收$context包含整个表单的值的方法.这样,您可以根据其他字段验证每个字段的值.
namespace My\Validator;
use Zend\Validator\AbstractValidator;
class CustomValidator extends AbstractValidator
{
public function isValid($value, $context = null)
{
// put your logic here and call
// $this->error(); if required
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7197 次 |
| 最近记录: |