2016-12-19 13 views
0

こんにちは私は1つのフォームから2つのテーブルに複数の値を挿入するコントローラを持っています。ボタンをクリックして挿入すると、2回目の検証のエラーが表示されます。Laravel 5.3複数リクエストの表示エラーを確認する

public function store(CreateRequest $request, RegisterRequest $request2) 
{ 
$input = Input::all(); 
$validation = Validator::make($input, $request->rules()); 
$validation2 = Validator::make($input, $request2->rules()); 
if ($validation->passes() and $validation2->passes()) 
{ 
    Users::create($input); 
    Register::create($input2); 
    return Redirect::route('users.main') 
    ->withSuccess('Created'); 
} 

return Redirect::route('users.create') 
->withInput() 
->withErrors(); 
} 
+0

そして、あなたの質問は何ですか? –

+0

'withErrors'は最新のエラーだけを返します。 –

+0

私は2つの異なる要求とルールを持っているので、私は複数のエラーをどのように表示するのですか? – kaaps

答えて

1

あなたは完全に間違っています。要求は単一の要求です。このシナリオでは、laravelは要求の中でリクエストをサポートしていますが、私が見ているのは、ユーザをシステムに登録しようとしていることです。これは好きですか?

1つのリクエストを作成します。 RegistrationRequestと言って、すべてのフォームフィールドとルールをその中に入れてください。このようなユーザーを格納するためだけにその要求を使用してください。

public function store(RegisterRequest $request) 
{ 
    $data = $request->all(); 
    $validation = Validator::make($data, $request->rules()); 

    if ($validation->passes()) { 
     $user = User::create([ 
      'username' => $request->username, 
      'name' => $request->name 
     ]); 
     $register = Register::create([ 
     'blabla' => $request->name, 
     'username' => $user->username 
     ]); 
     return Redirect::route('users.main')->withSuccess('Created'); 
    } 
    return Redirect::route('users.create')->withInput()->withErrors(); 
} 

あなたが直面している実際の問題は、あなたが間違ったアプローチをしようとしている、また、検証エラーが同様の作成ビューにスローされ、リダイレクトされthis.and行う別の方法があることがあるごとに、これは単なるデモです自動的に。あなたはあなたがバリデータのメッセージをマージして、それらを送り返すことができ、あなた自身の

+0

aproachと多分それは最高のものです。私は1つのテーブルに挿入したいときに再利用できると思ったので2リクエストに行っていたので、リクエスト1でテーブル1を検証し、2リクエストでテーブル2を検証しました。 – kaaps

+0

Laravel Validatorファサードでは、より多くの1つのテーブルに基づいてバリデーションを行うために 'required_if'のような素晴らしい検証があります:) – everytimeicob

0

でそれを行う必要はありません。

$errors = $validation->errors()->merge($validation2->errors()) 

return Redirect::route('users.create')->withInput()->withErrors($errors); 
関連する問題