Voici mon cas, j'ai une classe de demande que je crée en utilisant artisan:

php artisan make:request StoreSomethingRequest

Ensuite, j'y ai mis mes règles, puis je peux l'utiliser dans ma méthode Controller comme ceci:

public function store(StoreSomethingRequest $request)
{

}

Mais ce dont j'ai besoin, c'est que je souhaite séparer la logique de 2 demandes en fonction du bouton dans ma vue (en supposant qu'il y ait plus d'un bouton de soumission dans ma vue). Donc, mon contrôleur ressemblera à ceci:

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
   }
}

J'apprécierais toute suggestion / aide. S'il vous plaît. :RÉ

-2
Surya W 16 janv. 2017 à 11:38

2 réponses

Meilleure réponse

Vous pouvez utiliser quelque chose comme ça dans votre classe de requête dans la méthode rules.

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
Rajender Joshi 16 janv. 2017 à 08:53

Ajoutez les attributs name et value sur les boutons d'envoi HTML. Ensuite, vérifiez lequel a été soumis. Exemple:

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

Puis dans le gestionnaire:

 If (Request::input('action') === 'button1') { 
//do action 1
 } else { 
// do action 2
}
0
Erin 16 janv. 2017 à 09:05