run*_*ark 8 php validation rest laravel
我们正在为我们的应用程序创建一个 REST API。
网页.php
Route::post('add-new-student', 'StudentController@addNewStudent');
Run Code Online (Sandbox Code Playgroud)
学生控制器.php
Route::post('add-new-student', 'StudentController@addNewStudent');
Run Code Online (Sandbox Code Playgroud)
现在,当我们发送 JSON 响应时,如果出现错误,它不会转到 else 块,而是在邮递员中显示 404 页面。
我们不知道自己做错了什么!
笔记
小智 28
Validation Request 类检查您的请求是 ajax 请求还是普通请求。
如果这是一个正常的请求,它会执行:redirect()->back(),并在会话中包含验证消息。
如果它是 ajax 请求,它会显示一个 json 对象,其中包含验证消息。
前端框架/库(例如 jQuery)会向 ajax 请求添加标头,让后端知道这是一个 ajax 请求。Laravel 检查此标头来决定要做什么。
Postman 不会自动发送此标头。因此,您应该手动添加以下标头之一:
Accept: application/json
X-Requested-With: XMLHttpRequest
Run Code Online (Sandbox Code Playgroud)
当失败时执行$request->validate()重定向,然后if($validation->fails())永远不会执行。
正确答案是手动创建验证器
use Illuminate\Support\Facades\Validator; // include this at top
$validation = Validator::make($request->all() ,[
'student_mobile' => 'required|digits:10',
'student_name' => 'required|min:3|max:50',
'student_email' => 'email:rfc|max:50',
]);
if($validation->fails()) {
// validation failed
} else {
// validation passed
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6140 次 |
| 最近记录: |