La forme ouverte de la méthode du contrôleur - “Inconnu”
Nouveau à Laravel 4. J'ai créé un formulaire à l'intérieur d'une lame de modèle et je suis à la suite de la extrait de qui dit que vous pouvez pointer une des formes de l'action d'un contrôleur, en utilisant la méthode 'Formulaire::open(array('action' => 'Contrôleur@method'))'. J'ai créé un nouveau contrôleur appelé UsersController de l'artisanat et ont créé une nouvelle méthode dans le contrôleur nommé userLogin(). Quand j'point de cette méthode lors de l'ouverture d'un formulaire, je reçois un "InvalidArgumentException, Inconnu action" erreur. Si je régler l'action à l'ouverture du point de UsersController@index, tout est bien. J'ai couru compositeur de vidage-autoload, mais le problème demeure.
extrait de login.blade.php:
{{ Form::open(array('action' => 'UsersController@userLogin')) }}
extrait de UsersController.php:
public function userLogin()
{
//
}
Quelqu'un peut me dire si je suis absent quelque chose?
Merci à tous. Adjonction à routes.php résolu le problème:
Route::post('login', 'UsersController@userLogin');
Route::controller
ou Route::get
pour la méthode en question?Dans le Laravel de base, à l'exception de doit être jetés est
throw new InvalidArgumentException("Unknown action [$action].");
. Il ressemble à aucune action n'est en cours de transmission. Avez-vous mis en place un itinéraire de userLogin
?OriginalL'auteur user2444492 | 2013-06-02
Vous devez vous connecter pour publier un commentaire.
Ressemble à Laravel n'est pas de l'inscription de l'action que vous avez ajouté, probablement parce qu'il vous manque un itinéraire. Essayez d'ajouter quelque chose comme cela pour
app/routes.php
:Route::post
?Très droit, mis à jour afin de refléter.
Argh, pour une raison que je pense Formulaire::open effectuer le routage pour moi. L'ajout de 'Itinéraire::post('user/login', 'UsersController@userLogin');' routes.php il l'a fait, merci!
OriginalL'auteur zeantsoi
Après l'ajout de l'itinéraire jusqu'à votre routes.php, avez-vous également un changement de Forme::open()? Si non, vous pouvez juste avoir votre post de Formulaire d' /login ou /user/login.
Aussi, juste parce que je suis un peu pointilleux sur ce genre de choses, c'est une pratique courante d'avoir des contrôleurs et des modèles en tant que singulier, si UsersController serait UserController, et puisque la fonction de connexion est à l'intérieur d'un Utilisateur(s)du Contrôleur, il n'a pas besoin de l'utilisateur préfixe. Peut aider votre code soit plus lisible 🙂
OriginalL'auteur ollieread
Maintenant dans laravel 4, vous pouvez utiliser ceci :
Juste quelques conseils pour ajouter des "utilisations" plutôt que de "l'action"
OriginalL'auteur George Abitbol