It's the first time i am using validation in laravel. I am trying to apply validation rule on below json object. The json object name is payload and example is given below.

payload = {
  "name": "jason123",
  "email": "email@xyz.com",
  "password": "password",
  "gender": "male",
  "age": 21,
  "mobile_number": "0322 8075833",
  "company_name": "xyz",
  "verification_status": 0,
  "image_url": "image.png",
  "address": "main address",
  "lattitude": 0,
  "longitude": 0,
  "message": "my message",
  "profession_id": 1,
  "designation_id": 1,
  "skills": [
    {
      "id": 1,
      "custom" : "new custom1"
    }
   ]
}

验证代码如下所示,出于测试目的,我将验证名称是否为数字.当我执行下面的代码时,上面的json对象被批准并插入到我的数据库中.相反,它应该给我一个例外,因为我用字母数字值传递名称,我是否做错了什么:

public function store(Request $request)
{

    $this->validate($request, [
        'name' => 'digits',
        'age' => 'digits',
        ]);
}

推荐答案

Please try this way

use Validator;

public function store(Request $request)
{
    //$data = $request->all();
    $data = json_decode($request->payload, true);
    $rules = [
        'name' => 'digits:8', //Must be a number and length of value is 8
        'age' => 'digits:8'
    ];

    $validator = Validator::make($data, $rules);
    if ($validator->passes()) {
        //TODO Handle your data
    } else {
        //TODO Handle your error
        dd($validator->errors()->all());
    }
}

digits:value

验证中的字段必须是数字,并且必须具有精确的值长度.

Laravel相关问答推荐

URL类图中的循环关系

Laravel带S3存储器

有没有办法使用laravel EXCEL读取和修改EXCEL文件?

按回车键时如何防止此功能运行?

使用两个日期之间的范围获取两列之间的记录,同时搜索过滤条件

Laravel中具有两个外键字段的数据库一对多

如何处理 Laravel 的 SMTP 驱动程序中的自签名 TLS 证书?

laravel:如何在 Eloquent Query 中使用 LOWERCASE 函数?

升级到 laravel 5.4 后调用未定义的方法

Laravel 表 * 没有名为 * 的列

Laravel 4:读取由 javascript 设置的 cookie

如何比较laravel中的两个加密(bcrypt)密码

如何从 Windows 命令提示符在 Laravel 中运行 PHPUnit

如何使用中间件将标头添加到响应中?

为什么在 Laravel 的 DB::select 中使用 DB::raw?

Laravel 模型:模型属性在哪里?

Laravel 迁移 - 删除列

今天之前的 Laravel 规则......怎么办

Laravel 数据迁移

如何访问 Laravel 集合中的第 n 个项目?