Laravel 5.3:表单验证不会显示错误

时间:2017-01-16 00:19:46

标签: php validation laravel-5 request laravel-request

我正在尝试使用Laravel创建一个注册表单。

我创建了一个请求\App\Http\Requests\RegisterNewUserRequest。这是rules()方法:

public function rules()
{
    return [
        'email' => 'required|email|min:6|max:255|unique:members',
        'password' => 'required|min:6|max:16|confirmed',
        'name' => 'required|min:2|max:255|alpha',
        'surname' => 'required|min:2|max:255|alpha',

    ];
}

这是我的会员控制器

//Route::post('{locale}/create-new-user, 'MemberController@create_new_user');


public function create_new_user($locale, RegisterNewUserRequest $request)
{
    $input = $request->all();
    $input['ip'] = Request::ip();

    Member::create($input);

    return redirect("/$locale/create-account");

}

我在输入信息时违反了验证规则。例如,我输入两个不同的密码,并在电子邮件字段中输入1个字符。它没有说什么。它也不会将数据保存到数据库中。该页面再次重定向到相同的空注册表单。

我的视图中有一个验证摘要

...
@foreach($errors->all() as $e)
    <li>{{$e}}</li>
@endforeach
...

我跟踪发布的数据。它已发布。但是流程中有些奇怪。

修改

这也发生在我的联系表格中。如果我正确填写联系表格,它会发送一封电子邮件。但是,如果我违反了验证规则,它就不会对验证做任何说明,也不会发送电子邮件。

这是我的联系页面控制器

/**
 * @param Requests\SendMessageRequest $
 */

public function sendMessage($locale, SendMessageRequest $request)
{

    //        validation
    //        $this->validate($request,
    //            ['name' => 'required|min:3',
    //             'email' => 'required|min:5',
    //             'subject' => 'required|min:3',
    //             'message' => 'required|min:15'
    //            ]);

    $formData = $request->all();
    $formData['ip'] = Request::ip();

    Mail::send('contact.send', compact('formData'), 
                function ($message) use ($formData) {
                    $message->from('frommail@example.com', 'Example')
                            ->bcc(['bccmail@example.com'])
                            ->to('tomail@example.com')
                            ->subject($formData['subject']);
                 }
    );
}

\App\Http\Requests\SendMessageRequest 文件的规则()方法

public function rules()
{
    return [
        'name' => 'required|min:3',
        'email' => 'required|min:5',
        'subject' => 'required|min:3',
        'message' => 'required|min:15',
    ];
}

实际上它之前有效。添加多语言功能验证后没有奏效。我不知道是否有任何关系。

我怀疑在控制器和请求的顶部使用语句。

0 个答案:

没有答案