我正在尝试通过创建自定义表单请求来使用表单Laravel请求验证。这是我的代码段
Route::group(['namespace' => 'User'], function () {
Route::put('user/{user}', 'UpdateUserGeneralInfoController@UpdateUserGeneralInfo');
});
use App\Http\Controllers\Controller;
use App\Http\Requests\User\UpdateUserGeneralInfoRequest;
class UpdateUserGeneralInfoController extends Controller
{
public function UpdateUserGeneralInfo(UpdateUserGeneralInfoRequest $request,User $user)
{
$user->name = $request->name;
$user->email = $request->email;
$user->date_of_birth = $request->date_of_birth;
$user->save();
$response = [
'message' => 'User info updated successfully'
];
return response($response, 201);
}
}
namespace App\Http\Requests\User;
use Illuminate\Foundation\Http\FormRequest;
class UpdateUserGeneralInfoRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'name' => 'required|max:50',
'email' => 'required',
'date_Of_birth' => 'required'
];
}
public function messages()
{
return [
'name.required' => 'Name is required',
'email.required' => 'An email is required',
'date_Of_birth' => 'Date of Birth is required'
];
}
}
文件夹结构为
我正在尝试通过邮递员测试请求。这是我的json输入
{
"id" : 1,
"name":"Osman Rafi",
"email": "rafi@devport.com",
"current_address": "House-26,Islampur R/A, Mejortila, Sylhet-3100,Bangladesh",
"bio": "But a man is not made for defeat. A man can be destroyed,but not defeated.",
"linkedin": "linkedin.com/in/osman-goni-chowdhury-bb421a16b",
"facebook": "https://www.facebook.com/osman.rafi140",
"github": "https://github.com/Osman-Rafi",
"blood_group": "O(+ve)",
"password": "111111"
}
它显示了我
404 | Not Found
如果我尝试将其作为控制器,它将非常完美
public function UpdateUserGeneralInfo(Request $request,User $user)
{
}
答案 0 :(得分:0)
您必须在请求中传递所有这三个变量(您缺少date_Of_birth):
'name' => 'required|max:50',
'email' => 'required',
'date_Of_birth' => 'required'
但是,我认为您的错误来自其他几个地方,因为未找到404来自链接中未找到的路由。
添加了要呼叫的路由后,您是否清除了路由缓存:
尝试
php artisan route:cache
还添加
'name.required' => 'Name is required',
'email.required' => 'An email is required',
'date_Of_birth' => 'Date of Birth is required'
出生日期。