laravel8如何使用表单请求验证,并ajax返回

浏览593

面对更复杂的情况,您可以创建一个「表单请求」来应对更复杂的验证逻辑。表单请求是一个包含了验证逻辑的自定义请求类。要创建一个表单请求类,请使用 make:request

php artisan make:request CheckUser

验证代码

<?php
 
namespace App\Http\Requests\Admin;
 
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Support\Facades\Route;
 
class CheckUser extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }
 
    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
            return [
                'name' => 'required',
                'password' => 'required',
                'email' => 'required',
                'realname' => 'required',
                'tel' => 'required',
            ];
    }
    /**
     * 获取已定义验证规则的错误消息。
     *
     * @return array
     */
    public function messages()
    {
        return [
            'name.required' => '账号不能为空',
            'password.required' => '密码不能为空',
            'email.required' => '邮箱不能为空',
            'realname.required' => '姓名不能为空',
            'tel.required' => '电话不能为空',
        ];
    }
//    ajax返回
    public function failedValidation(Validator $validator)
    {
        throw (new HttpResponseException(response()->json([
            'code' => 1,
            'msg' => $validator->errors()->first(),
        ], 0)));
    }
}
?>

控制器调用验证

<?php
public function add(CheckUser $request){
 
}
?>

这样,用户在提交数据,laravel后端就会自动对提交过来的数据进行校验。


  • 暂无任何回答