1

我正在尝试使用 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文件的rules()方法

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

实际上它以前工作过。添加多语言功能验证后不起作用。不知道有没有关系。

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

4

0 回答 0