Validation 本文未发布 发布文章

未匹配的标注

apiato uses the powerful Laravel validation system.
But in apiato validation must be defined in the Requests components, since every request might have different rules.
And the Validations rules are automatically applied, once injecting the Request in the Controller.
Requests helps validating User data, accessibility, ownership and more can be added if needed.
Example Request with Validation rules:

<?php

namespace App\Containers\User\UI\API\Requests;

use App\Ship\Parents\Requests\Request;

class RegisterUserRequest extends Request
{
    /**
     * @return  array
     */
    public function rules()
    {
        return [
            'email'    => 'required|email|max:200|unique:users,email',
            'password' => 'required|min:20|max:300',
            'name'     => 'required|min:2|max:400',
        ];
    }

}

Usage from Controller Example:

    public function registerUser(RegisterUserRequest $request, CreateUserAction $action)
    {
        // if the actions takes the request object, you can pass the entire request instance as parameter
        $user = Apiato::call('User@RegisterUserAction', [
            [
                $request['email'],
                $request['password'],
                $request['name'],
                $request['gender'],
                $request['birth']
            ]
        ]);

        return $this->transform($user, UserTransformer::class);
    }

Responses

Validation Error response format:
Single Field:

{
  "errors": {
    "email": [
      "The email has already been taken."
    ]
  },
  "status_code": 422,
  "message": "The given data failed to pass validation."
}

Multiple Fields:

{
  "errors": {
    "email": [
      "The email field is required."
    ],
    "password": [
      "The password field is required."
    ]
  },
  "status_code": 422,
  "message": "The given data failed to pass validation."
}

More details about requests in the “Request Page”.

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
发起讨论 只看当前版本


暂无话题~