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");

}

情報の入力中に入力規則に違反しました。たとえば、2 つの異なるパスワードを入力し、メール フィールドに 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',
    ];
}

実際、以前は機能していました。多言語機能を追加した後、検証が機能しませんでした。関係があるかどうかはわかりません。

コントローラーとリクエストの上部にある use ステートメントについて疑問があります。

4

0 に答える 0