我在当前项目中使用Laravel 5.6。在Request对象的规则中,我具有以下规则功能:
public function rules()
{
if ($this->input('preset') === self::NO_PRESET) {
$this->merge(['preset' => null]);
}
return [
'preset' => 'nullable|exists:roles_presets,id',
...
];
}
但是,当'preset'为null时,exists:roles_presets,id
的规则仍然失败。
nullable
规则允许该值,所以不应该达到它吗?
答案 0 :(得分:1)
不要将合并放在rules
函数中,而是要覆盖validationData
并在其中添加逻辑。
public function validationData()
{
if ($this->input('preset') === self::NO_PRESET) {
$this->merge(['preset' => null]);
}
// returns $this->all();
return parent::validationData();
}