【问题标题】:PHP Laravel: Validator to check input for intPHP Laravel:用于检查 int 输入的验证器
【发布时间】:2017-12-23 17:10:56
【问题描述】:

使用 PHP Laravel 的 Validator,我如何检查 int 的输入?

我尝试过使用 is_int,但方向错误。

    class ProductsController extends Controller
    {
        public function listproduct(){

  return view('products.listproduct');

}

public function saveproduct(Request $request){

  $this->validate($request, [
      ...
      'payment' => 'required|is_int()',  
      ...
  ]);

【问题讨论】:

    标签: php laravel validation


    【解决方案1】:

    使用closure validation 或创建自定义:

    $this->validate($request, [
        ...
        'payment' => function ($attribute, $value, $fail) {
            if (!is_int($value)) {
                return $fail($attribute . ' should be integer.');
            }
        }
        ...
    ]);
    

    请记住,自定义规则无法与最小和最大规则一起正常工作。

    【讨论】:

      【解决方案2】:

      只需阅读docs 即可找到您需要的规则

      $this->validate($request, [
        ...
        'payment' => 'required|integer',  
        ...
      ]);
      

      【讨论】:

      • 这和 is_int 不一样!例如“4”通过了 laravel 整数检查,但 is_int("4") 为假,我需要一个验证来真正检查输入是否为 int,以便我的方法的类型检查工作
      • 来自 html 的输入都是文本。 http请求中没有整数
      • 是的,但 json 是文本。一旦您将 json 转换为不同类型的对象,那么它就不再在请求中,您只需使用普通 is_int
      • 也许这只是 Lumen 特定的,但我使用 Lumen 并且我可以在输入已经是 json 对象的情况下发出请求,并且我可以使用正常的输入验证来验证这个对象,当我现在使用整数作为验证它不验证它的类型,所以我必须再次验证,如果我想允许输入 {id: 1} 并且不允许输入 {id: "1"} 这对我来说是不同的......
      • 流明特定
      猜你喜欢
      • 1970-01-01
      • 2015-06-09
      • 1970-01-01
      • 2011-04-12
      • 2017-08-10
      • 2021-05-12
      • 2014-10-23
      • 2021-03-06
      • 2015-02-02
      相关资源
      最近更新 更多