我正在使用Laravel 5.6按名称验证输入。我正在使用exist规则来确定名称与输入匹配,并且basic
等于1,如下所示:
public function rules()
{
$this->sanitizeSpecials($this->all());
return [
'special1' => ['string', 'nullable', 'exists:specials,name,basic,1'],
];
}
在进行验证之前,我先通过一个消毒程序运行该名称,然后将其转换为将名称存储在数据库中的大小写格式。
public function sanitizeSpecials($input)
{
if ($input['special1']) {
$input['special1'] = ucwords(str_replace("_", " ", $input['special1']));
}
$this->replace($input);
}
卫生功能正确(例如:top_fade
变为Top Fade
),并且名称中没有空格的特殊商品可以正确验证,但是只要名称中有空格的特殊商品(如示例{ {1}},即使我可以验证输入值是否与数据库中的值匹配,验证仍会失败。为什么会这样失败?