方法\UserController::sendError在尝试验证输入时不存在laravel+;vuejs
因此,我正在与vuejs front和laravel back合作一个项目方法\UserController::sendError在尝试验证输入时不存在laravel+;vuejs,laravel,vue.js,validation,Laravel,Vue.js,Validation,因此,我正在与vuejs front和laravel back合作一个项目 我希望确保用户在尝试将其添加到数据库之前输入一些经过验证的数据 这是userController中的createuser方法 public function createUser(Request $request){ $input = $request->all(); $validator = Validator::make($input, [ 'firs
我希望确保用户在尝试将其添加到数据库之前输入一些经过验证的数据
这是userController中的createuser方法
public function createUser(Request $request){
$input = $request->all();
$validator = Validator::make($input, [
'first_name' => 'required',
'last_name' => 'required',
'email'=>'email|required|unique',
'reg_num'=>'required',
'post_id'=>'required'
]);
if ($validator->fails()) {
return $this->sendError('Validation Error.', $validator->errors());
}
$user = new User;
$user->first_name = $request->first_name;
$user->last_name = $request->last_name;
$user->id_card = $request->id_card;
$user->reg_num = $request->reg_num;
$user->phone_num = $request->phone_num;
$user->landline = $request->landline;
$user->address = $request->address;
$user->email = $request->email;
$user->birth_date = $request->birth_date;
$user->rec_date = $request->rec_date;
$user->end_service_date = $request->end_service_date;
$user->education_lvl = $request->education_lvl;
$user->contract_type = $request->contract_type;
$user->cv = '';
$user->motivation_letter = '';
$user->center_interest = $request->center_interest;
$user->nb_hour = $request->nb_hour;
$user->password = bcrypt($request->password);
$user->post_id = $request->post_id;
$user->nb_holidays = 24;
$user->banned =0;
$user->admin = 0;
$user->photo_url = '';
$user->gender = $request->gender;
$user->save();
return response()->json([
"message" => "User record created"
], 201);
}
当我尝试发送带有空输入的请求时,出现了此错误请求失败,状态代码为500
相反,我希望得到输入为空的消息。
有人能帮帮我吗
这就是我如何捕捉前面的错误
.catch((error) =>(this.errors.push(error.response.data)))
当我这样做时,我得到了上面的错误,但当我这样做时.catch((error) =>(this.errors.push(error)))
我有这个 这就是如何创建标准请求,您可以在控制器中“创建”它们,但更标准的做法是通过创建FormRequest,请参见此处的文档 您可以使用以下命令创建表单请求
php artisan make:request StoreUserRequest
这样,您可以在控制器方法的参数中将请求设置为StoreUserRequest$request
然后在这个请求中,您可以像这里一样设置规则,但是它会自动处理失败的数据,它会返回422
,并返回错误,它会深入到它返回的对象中,但它就在那里
但是,如果确实要在控制器中执行验证,则可以访问验证程序上的->errors()
注:
我只想看几件小事,这将向您展示一种更简单的创建记录的方法
由于所有字段看起来都与数据库匹配,因此可以查看$request->validated()
方法,该方法将返回验证器验证的所有字段。这将是规则数组中通过验证的所有字段
或者您可以使用
$request->only()
或$request->except()
,然后数组合并中的密码和需要强制转换为bool(禁止和管理)的字段。控制器上是否存在发送错误
。据我所知,它不是。我想,当我使用验证器时,我需要使用它。。我应该改一下吗,但是用wht?这可以帮我。。但我需要知道一些事情。这里我有一个关于sendError方法的错误。。我可以用一些对我有用的东西来代替它吗?如果不执行请求,您不能返回这样的错误,但是您可以获得错误并将其添加到响应中,就像我上面所说的,“但是如果您确实想在控制器中进行验证,您可以访问验证程序上的->errors()