我有一个laravel窗体来更新数据库中的现有用户信息,但如果该窗体中的字段为空,我不希望它更新数据库中的该记录。现在,如果该字段为空并且表单已提交,它将传递该空白输入并删除数据库中的记录。Laravel验证通过空白输入
下面是编辑用户信息然后执行数据库更新的功能。我目前将Request :: old('...')附加到电子邮件中,但由于验证是'unique:users',它会给出错误'发送电子邮件'。
感谢,
public function postEdit(Request $request)
{
$this->validate($request, [
'email' => 'unique:users|email|max:255',
'password' => 'min:6',
'confirm_password' => 'same:password',
'about_me' => 'max:500',
]);
Auth::user()->update([
'email' => $request->input('email'),
'password' => bcrypt($request->input('password')),
'confirm_password' => bcrypt($request->input('confirm_password')),
'about_me' => $request->input('about_me'),
]);
return redirect()->route('profile.edit')->with('info', 'You have updated your profile!');
}
如果用户删除的信息,那么就意味着他要的字段设置为空白。没有? – itachi
那么,他们需要在系统中的电子邮件地址。因此,这些选项将(1)使该字段成为必需,但具有验证,如果该电子邮件与该用户的当前数据库记录相同,则验证不会发生错误,或者(2)允许该字段为空,如果是这样,只保留当前数据库记录并且不要将其设置为''。 –
唯一接受第三个参数。通过该参数中的用户标识,它将检查唯一的电子邮件,尽管相关用户中的字段将被跳过。 – itachi