验证 2 个字段应该是相同的值,而其中一个字段在 laravel 5 中的名称中没有 _confirmation

Aym*_*ein 3 php laravel laravel-4 laravel-5

我有借方字段和借方字段

 <input type="text" class="form-control" name="debit" value="{{ isset($expense->debit) ? $expense->debit : old('debit')}}"> 
Run Code Online (Sandbox Code Playgroud)

 <input type="text" class="form-control" name="credit" value="{{ isset($expense->credit) ? $expense->credit: old('credit')}}"> 
Run Code Online (Sandbox Code Playgroud)

我需要确保提交表单时值相等。

我知道如果像这样命名它们,我可以做到:

debit 和 debit_confirmation 以及规则数组中

return Validator::make($data, [
        'debit' => 'required|confirmed',
    ]);
Run Code Online (Sandbox Code Playgroud)

但我不想改变他们的名字。

Laravel 5 中的任何内置验证都可以做到这一点。

Dim*_*sta 8

您可以使用same验证规则来匹配您想要的字段。

return Validator::make($data, [
    'debit' => 'required|same:credit',
]);
Run Code Online (Sandbox Code Playgroud)

您可以查看laravel 文档以获取有关验证规则的更多信息


jed*_*ylo 5

在Laravel提供的众多验证器中,有一个您正在寻找:same。为了验证 2 个不同字段(field1、field2)的值是否匹配,您需要定义以下规则

 $rules = [
  'field1' => 'same:field2'
];
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看所有可用验证规则的列表:http ://laravel.com/docs/5.1/validation#available-validation-rules