Php Laravel:仅当值更改时验证字段
我的laravel 5.5应用程序中的一些表单字段具有针对远程API运行的验证规则,并且需要相当长的时间。因此,我只希望在字段值更改(与当前存储在模型中的值不同)时运行这些昂贵的检查 是否已经实现了这一点,例如作为类似于Php Laravel:仅当值更改时验证字段,php,laravel,validation,laravel-5,Php,Laravel,Validation,Laravel 5,我的laravel 5.5应用程序中的一些表单字段具有针对远程API运行的验证规则,并且需要相当长的时间。因此,我只希望在字段值更改(与当前存储在模型中的值不同)时运行这些昂贵的检查 是否已经实现了这一点,例如作为类似于有时的规则 我会这样想:只改变了|昂贵的|昂贵的|验证2。后一种规则仅在字段值更改时执行。假设您使用的是自定义请求类,rules()方法希望在应用验证之前返回关联数组 在应用验证之前,您可以使用请求内容动态构建规则数组,如下所示: /** * Get the validatio
有时的规则
我会这样想:只改变了|昂贵的|昂贵的|验证2
。后一种规则仅在字段值更改时执行。假设您使用的是自定义请求
类,rules()
方法希望在应用验证之前返回关联数组
在应用验证之前,您可以使用请求内容动态构建规则数组,如下所示:
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$validation_array = [
'name' => 'required|string|max:255',
];
if ($this->my_field === $some_condition) {
$validation_array = array_merge($validation_array. [
'my_field' => "required|expensive_validation|expensive_validation2"
]);
}
return $validation_array;
}
注意:我还没有运行这个程序,但是原理应该是好的。在处理输入更改时需要使用javascript进行验证。不,这完全可以在PHP中实现。对于要验证的字段,需要调用post方法。因此,这意味着表单需要在验证之前提交。