Laravel 4 - deux boutons submit, sous une forme et à la fois se soumet à être traitées par différentes actions
J'ai un formulaire de connexion qui a e-mail et le mot de passe dans les champs. Et j'ai deux boutons submit, l'un pour la connexion ( si l'utilisateur est déjà enregistré ) et l'autre pour l'enregistrement ( pour les nouveaux utilisateurs ). Comme l'action login et registre d'action sont différentes, donc j'ai besoin d'un moyen de rediriger la demande avec toutes les données post à son action. Est-il un moyen pour atteindre cet objectif dans Laravel 4 dans la pure Laravel façon?
- Donner les boutons de soumission des noms différents.
Vous devez vous connecter pour publier un commentaire.
La façon dont je voudrais faire
Si votre formulaire est (2 boutons):
Créer un controller 'TestController'
Ajouter une route
Dans TestController vous auriez une méthode qui vérifie la soumettre a cliqué sur et deux autres méthodes pour se connecter et s'inscrire
Route::post('test/auth', function() { if(Input::get('login')) { $action = 'postLogin'; } elseif(Input::get('register')) { $action = 'postRegister'; } return App::make('TestController')->$action(); });
t-il m'aider? Vous aurez tous l'entrée dans n'importe quel contrôleurs que vous utilisez.Ma solution:
j'ai d'abord mis en place sous forme avec aucune action
pour les routes (routes.php):
contrôleur (TestController.php)
Jquery: (test.js)
ClickCoder la réponse est sur place, la seule chose que je voudrais le remplacer, de le faire dans une 100% "pur Laravel façon" serait d'utiliser le Constructeur de Formulaire pour la soumission de boutons.
http://laravel.com/docs/4.2/html#buttons
Le premier paramètre est la soumission de la valeur, et vous pouvez passer son nom à l'une des options suivantes tableau.
Ainsi, au lieu de:
Vous souhaitez faire:
Si vous le souhaitez, vous pouvez échapper à l'instruction si complètement en leur faisant partager le même nom et de faire quelque chose comme ceci:
html:
php:
Un peu moins de nidification, un peu plus de Laravel!
Vous pouvez le faire comme suit:
Vos itinéraires (routes.php):
filters.php
TestController.php
Forme: devrait être dans votre vue.cependant, j'ai créé un temp formulaire dans le fichier de route pour cette réponse.
maintenant parcourir:
Veuillez noter: je ne suis pas sûr que c'est la bonne approche pour permettre à deux boutons submit, mais ça marche pour les deux boutons submit.
withInput();
. Après la redirection, vous pouvez obtenir toutes les entrées en utilisantInput::old();
. vérifier ma réponse par exemple.Donner les boutons de soumission des noms différents, par exemple,
Dans votre contrôleur, il suffit de gérer de connexion ou d'inscription selon le bouton sur lequel a été soumis. Vous disposerez toujours de toutes vos entrées, vous pouvez le faire;