framework
framework copied to clipboard
关于Validate 验证场景使用问题
protected $rule = [
'id' => 'require|integer',
'age' => 'require|integer',
];
protected $scene = [
'add' => [
'id', 'age'
],
];
如上是我一开始的验证器代码,我希望验证场景是add的时候去验证id和age这两个参数。
后面app跟我反馈,id和age是非必填的,我想到的肯定是在验证场景里面把这两个参数去掉
protected $rule = [
'id' => 'require|integer',
'age' => 'require|integer',
];
protected $scene = [
'add' => [
],
];
可是上面的验证规则会去匹配所有的rule,我觉得这个不太友好,很难注意到这种问题
如果是非必填,你需要做的是,把require规则给去掉,而不是在验证场景中去掉id和age两个字段。
如果是非必填,你需要做的是,把
require规则给去掉,而不是在验证场景中去掉id和age两个字段。
你说的方案是可以的,但是我更习惯现在这样的写法,因为后面很可能会有其他的验证规则
如果是非必填,你需要做的是,把
require规则给去掉,而不是在验证场景中去掉id和age两个字段。
不能去掉,其他的场景是必填的,我这个代码是最简的所以没有体现出来
public function sceneEdit()
{
return $this->only(['name','age'])
->append('name', 'min:5')
->remove('age', 'between')
->append('age', 'require|max:100');
}