Laravel验证通过空白输入

时间:2015-11-29 17:34:28

标签: laravel laravel-5 laravel-validation

我有一个laravel表单来更新数据库中现有用户的信息,但如果该表单中的字段为空,我不希望它更新数据库中的该记录。就像现在一样,如果该字段为空并且提交了表单,则它会传递该空白输入并删除数据库中的记录。

以下是编辑用户信息然后执行数据库更新的功能。我目前将Request :: old('...')附加到电子邮件中,但由于验证结果为'unique:users',因此会出现错误'email is taken'。

谢谢,

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!');
}

2 个答案:

答案 0 :(得分:1)

您需要修改<filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" preserveOriginal="1" types="wdfftypes.txt" /> 规则以排除您正在编辑的记录。

而不是

unique

你应该使用:

'email' => 'unique:users|email|max:255',

Reference for unique rule

答案 1 :(得分:0)

在验证规则中,您可以设置&#39; required&#39;,这必须有所帮助。