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 ステートメントについて疑問があります。