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

Добавить name и value атрибуты на HTML кнопки отправки. Затем проверьте, какой из них был отправлен. Пример:

<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

Спасибо за ваш ответ Эрин, но как использовать класс StoreSomethingRequest в «Do action 1 or 2»? Я хочу проверить его там. –

Смежные вопросы