【发布时间】:2020-02-03 12:27:42
【问题描述】:
我通过 ajax 将选择元素选择的值发送到 Laravel 控制器操作,并根据控制器中的要求验证该值。
问题是我将选择元素值作为字符串而不是整数。 So when first option is selected which has value 0, it goes as a string ("0") to controller and does not validated as required in action method.
选择元素的选项是动态添加的。
这是我的代码
HTML
var row_data = {
'lob_id': lob_id,
'sub_lob_id': sub_lob_id,
'product_id': product_id,
};
$.ajax({
url: '{{route('
getProductThreshold ')}}',
type: 'get',
dataType: 'json',
data: row_data,
success: function (response) {
loader(true);
console.log(response);
}
});
Laravel 控制器
$validators = Validator::make($request->all(), [
'lob_id' => 'required',
'sub_lob_id' => 'required',
'product_id' => 'required',
]);
控制器请求
如果值在请求中作为字符串发送,我应该如何使用 laravel 验证器?
【问题讨论】:
-
如果没有实际看到您的代码,我们将无法帮助您进行调试。但是我猜你只是发送从
val()返回的值,这是一个字符串。尝试在其上使用parseInt()强制类型强制 -
我尝试使用
parseInt()仍然将值作为字符串发送 -
您确定发送的值是
"0",我刚刚做了一个测试,"0"通过了required验证。在验证之前尝试dd($request->all()),看看到底传递了什么 -
是的,我确定它是字符串。我已经用请求值更新了问题。