Mil*_*ETE 2 php validation rules laravel
在 Laravel 中指定存在验证规则时,是否可以引用另一个字段?
我的请求 :
public function rules()
{
return [
'numero_de_somme' => 'unique:personnels,numero_de_somme|exists:fonctionnaire,num_somme',
'cin' => 'unique:personnels,cin|exists:fonctionnaire,cin',
];
}
Run Code Online (Sandbox Code Playgroud)
在我的验证规则中,我希望能够确保:
num_somme存在于fonctionnaire表中cin存在于 fonctionnaire 表中,并且cin输入必须在num_sommenum_somme : 12345 cin : s89745
num_somme : 78945 cin : U10125
解释:例如
num_somme= 12345 且cin= U10125,则验证必须失败num_somme= 12345 和cin= s89745 验证必须成功我希望这是有道理的。
谢谢
Ali*_*N11 16
你可以简单地使用这个:
'request_input' => exists:table,col,alternative_col_1,alternative_val_1,alternative_col_2,alternative_val_2, ...'
Run Code Online (Sandbox Code Playgroud)
SQL 查询如下:
select count(*) as aggregate from `table` where `id` = [request_input] and `alternative_col1` = "alternative_val1" and `alternative_col2` = "alternative_val2"
Run Code Online (Sandbox Code Playgroud)
我今天遇到了同样的需求,我想我有一个使用验证规则类的解决方案:规则示例。
这是我的场景:我有一个电子邮件验证表,我想确保在同一行中存在传递的机器代码和激活代码。
务必包括 use Illuminate\Validation\Rule;
$activationCode = $request->activation_code;
$rules = [
'mc' => [
'required',
Rule::exists('email_verifications', 'machineCode')
->where(function ($query) use ($activationCode) {
$query->where('activationCode', $activationCode);
}),
],
'activation_code' => 'required|integer|min:5',
'operating_system' => 'required|alpha_num|max:45'
];
Run Code Online (Sandbox Code Playgroud)
exists 方法中的第一个参数是表,第二个参数是我用于 'mc' 字段的自定义列名。我通过了我想使用“use”关键字检查的第二列,然后在 aa where 子句中使用该字段。