2017-01-16 40 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

感謝您的回覆Erin,但是如何在「執行操作1或2」中使用StoreSomethingRequest類?我想在那裏驗證它。 –