Sig*_*avi 7 validation laravel-5
我正在使用 Laravel 5.4。
我的表单中有两个字段:travel_km 和travel_rate
我的规则: 'travel_km' => 'numeric|nullable', 'travel_rate' => 'sometimes|required_with:travel_km'
问题是,如果travel_km 为空,我仍然会在travel_rate 上收到错误,因为它为空。
如果我在 Travel_rate 上设置可为空,即使 Travel_km 不为空,我也不会收到错误。
为了解决这个问题,我在控制器中这样做了:
if(empty($request->travel_km) && empty($request->travel_rate)) {
$this->validate($request,
[
'customer_id' => 'required',
'service_date' => 'required',
'labour_hrs' => 'numeric|nullable',
'hourly_rate' => 'sometimes|required_with:labour_hrs',
],
[
'customer_id' => 'Please enter the customer',
'service_date' => 'Please select the service date',
'labour_hrs' => 'Please enter a valid number',
'hourly_rate' => 'Please enter a valid number',
]);
} else {
$this->validate($request,
[
'customer_id' => 'required',
'service_date' => 'required',
'labour_hrs' => 'numeric|nullable',
'hourly_rate' => 'sometimes|required_with:labour_hrs',
'travel_km' => 'numeric|nullable',
'travel_rate' => 'sometimes|required_with:travel_km'
],
[
'customer_id' => 'Please enter the customer',
'service_date' => 'Please select the service date',
'labour_hrs' => 'Please enter a valid number',
'hourly_rate' => 'Please enter a valid number',
'travel_rate' => 'Please enter a valid number',
'travel_km' => 'Please enter a valid number'
]);
}
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以解决这个问题吗?如果有几个案例,我就会遇到这个问题,并且我不想使用更通用的解决方案。
我查看了自定义验证,但无法理解如何检查 Travel_km 是否为空。
Validator::extend('foo', function ($attribute, $value, $parameters, $validator) {
return is_numeric($value) && $parameter ????;
});
Run Code Online (Sandbox Code Playgroud)
谢谢
Mur*_*mal 11
尝试使用required_if如下
'travel_km' => 'numeric|nullable',
'travel_rate' => 'sometimes|required_if:travel_km'
Run Code Online (Sandbox Code Playgroud)
仅当 Travel_km 存在且非空时,这才会验证 Travel_rate。在这里,它允许您在不为空时放置travel_kmnull ,并且为空时它会显示错误,但在具有 null 值时不会显示错误。希望这可以帮助。travel_kmtravel_ratetravel_km
更新:nullable验证不适用于数值。
它可以通过应用如下条件规则来完成,
if( !empty(Input::get('travel_km')) ){
$rules['travel_km'] = 'numeric';
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11339 次 |
| 最近记录: |