2017-01-16 7 views
-2

ここで、私は職人を使用して作成した要求クラスを得た。その後、私はそこに自分のルールを置くLaravelは私の場合どのようにリクエストクラスを検証するためにではなく、メソッドのパラメータに

php artisan make:request StoreSomethingRequest 

、その後、私はそれを使用することができますこのように私のコントローラメソッドで:

public function store(StoreSomethingRequest $request) 
{ 

} 

しかし、私は必要ですが、私は私の見解では、ボタンに基づいて2要求ロジックを分離したい(1私の見解では、ボタンを提出するよりも多くのがあると仮定し)。コントローラは次のようになります:

public function store(Request $request) 
{ 
    if($request->submit_button === 'button1') 
    { 
     // I want to validate using StoreSomethingRequest here 
    } 
    else 
    { 
     // I dont want to validate anything here 
    } 
} 

私はどんな提案/助けもありがとうございます。お願いします。 :D

答えて

0

あなたのリクエストクラス内のルールメソッドでこれを使うことができます。

public function rules() 
{ 
    $rules = [ 
     'common_parameter_1' => 'rule:rule', 
     'common_parameter_2' => 'rule:rule', 
    ]; 

    if($this->submit_button === 'button1') 
    { 
     $rules['custom_parameter_for_button_1'] = 'rule:rule'; 
    } 
    else 
    { 
     $rules['custom_parameter_for_button_2'] = 'rule:rule'; 
    } 

    return $rules; 
} 
+0

おかげで、私は、要求クラスのより複雑な検証を持っています。私はルールの検証後にそれを持っています。ルールを返すだけではありません。 –

+0

あなたはその質問についてより建設的でなければなりません。 –

+0

はい、申し訳ありませんが、それは建設的ではないという私のせいです。しかし、それを達成する方法はありますか?どんな提案も素晴らしいだろう。おかげで –

0

送信ボタンをHTMLにnamevalue属性を追加します。次に、いずれが提出されたかを確認します。例:ハンドラで次に

<button type="submit" name="action" value="button1">Save 1</button> 
<button type="submit" name="action" value="button2">Save 2</button> 

:ご返信用

If (Request::input('action') === 'button1') { 
//do action 1 
} else { 
// do action 2 
} 
+0

ご返信ありがとうございましたが、 "Do action 1 or 2"でStoreSomethingRequestクラスを使用する方法はありますか?私はそこでそれを検証したい。 –

関連する問題