【转载】laravel FormRequest表单验证,验证异常返回JSON

转自:https://www.jb51.net/article/180637.htm

通常在项目中,我们会对大量的前端提交过来的表单进行验证,如果不通过,则返回错误信息。

前端为了更好的体验,都使用ajax进行表单提交,虽然 validate() 方法能够根据前端的不同请求方式,返回不同的结果。

但是返回的json格式并不是我们想要的,这个时候,我们就需要自定义返回错误结果。

先创建一个表单请求类:

php artisan make:request TestRequest

然后在 rules() 和 messages() 方法里填写自已的验证规则和消息

<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Http\Exceptions\HttpResponseException;
class TestRequest extends FormRequest
{
  /**
   * 控制访问权限
   */
  public function authorize()
  {
    //注意,默认是false,改成true
    return true;
  }
  /**
   * 验证规则
   */
  public function rules()
  {
    return [
      'name' => 'required',
      'pwd' => 'required',
    ];
  }
  /**
   * 验证消息
   */
  public function messages()
  {
    return [
      'name.required' => '姓名必填',
      'pwd.required' => '密码必填',
    ];
  }
}

注意,父类 FormRequest中的 failedValidation() 方法用来处理验证失败,我们重写父类方法,来实现自已的返回。

public function failedValidation(Validator $validator)
{
  throw (new HttpResponseException(response()->json([
    'status_code' => 500,
    'message' => '请求错误',
    'data' => $validator->errors()->first(),
  ], 200)));
}
点赞
  1. 1winded说道:
    Google Chrome Windows 10
    https://t.me/site_official_1win/316
  2. Pokerdomded说道:
    Google Chrome Windows 10
    https://t.me/s/officials_pokerdom/3290
  3. RoyalFlusher说道:
    Google Chrome Windows 10
    https://t.me/s/officials_pokerdom/3856
  4. DealerShadow说道:
    Google Chrome Windows 10
    https://t.me/s/ezcash_officials
  5. LuckyBandit说道:
    Google Chrome Windows 10
    http://images.google.ki/url?q=https://t.me/officials_7k/110
  6. LuckyBandit说道:
    Google Chrome Windows 10
    В лабиринте азарта, где всякий сайт пытается привлечь обещаниями легких призов, рейтинг топ 10 онлайн казино становится той самой путеводителем, что ведет через дебри подвохов. Игрокам хайроллеров да новичков, которые устал от ложных обещаний, такой средство, чтоб почувствовать реальную rtp, словно вес ценной монеты у ладони. Минус лишней воды, только проверенные клубы, в которых выигрыш не просто показатель, а конкретная фортуна.Подобрано на основе яндексовых трендов, как ловушка, которая ловит топовые свежие тренды на рунете. Здесь минуя места для клише приёмов, каждый элемент словно ход у игре, в котором обман выявляется сразу. Профи видят: по стране тон речи и подтекстом, там юмор притворяется под совет, позволяет миновать ловушек.На https://cloud.mail.ru/public/1pe1/MmFjMPKG5 этот топ находится как готовая раздача, подготовленный на старту. Зайди, когда нужно увидеть пульс настоящей ставки, минуя мифов и провалов. Для что знает вес выигрыша, такое как держать фишки у пальцах, минуя пялиться в монитор.

发表回复

电子邮件地址不会被公开。必填项已用 * 标注