Laravel 5: Extraction de données ajax en route et transmettre au contrôleur
Je suis en utilisant Laravel 5 et vous souhaitez faire appel ajax vers un contrôleur avec quelques données:
$.ajax({
url : "/getOrgById",
data : JSON.stringify({id:1})
})
La routes.php
a:
Route::get('/getOrgById', 'HomeController@getOrgById');
HomeController.php
:
public function getOrgById($data) {
//code here fails with message 'Missing argument 1 for HomeController::getOrgById()
}
Comment puis-je transmettre les données de l'ajax à l'itinéraire et au contrôleur?
Il semble que vous vous approchez de certains CRUD-comme la structure; je vous suggère de créer un contrôleur séparé et l'enregistrer avec
Route::resource('organizations', 'OrganizationsController')
et ajouter un show($id)
méthode. Qui vous permet de faire /organizations/1
hors de la boîte. Si vous insistez sur l'obtention de données par le passage d'un paramètre de requête, il suffit de retirer le $data
de la getOrgById
de la méthode et de l'accès à l'id avec Request::get('id')
.OriginalL'auteur Sharon Haim Pour | 2016-07-21
Vous devez vous connecter pour publier un commentaire.
Je pense que l'exemple ci-dessous est ce que vous êtes à la recherche pour
Route
Contrôleur
JS
OriginalL'auteur saada
Vous devriez vraiment regarder dans la débrouillardise des actions de contrôleur. Si vous êtes désireux d'extraction d'une organisation par son ID, alors vous avez une organisation de l'entité, afin de créer une organisation contrôleur. Ce contrôleur permet ensuite d'avoir une méthode pour montrer une organisation par sa valeur de clé primaire:
L'itinéraire pour cela ressemblerait à:
Vous pouvez alors demander de cet itinéraire via AJAX comme suit:
OriginalL'auteur Martin Bean
Vous pouvez utiliser
Input
pour obtenir votre variableOriginalL'auteur afarazit
Vous pouvez définir paramers dans votre itinéraire:
Et de l'appeler par:
Vous pouvez utiliser
Input::get()
pour récupérer vos donnéesJe crois que vous avez oublié un "/" après getOrgById.
OriginalL'auteur jeanj
Vous avez été près de la droite, mais lors de l'utilisation de
$data
dans votre déclaration de fonction vous êtes exigeant une variable de Chaîne de Requête, plutôt que d'un formulaire de demande.Vous devez l'ajouter à votre Formulaire de Demande dans votre méthode de Contrôleur, comme suit:
Comme une démonstration de la fonctionnalité, rien d'autre. J'ai aussi le retour 422 lors de la validation du formulaire échoue, à l'aide de JSON.
Un 422 devrait être retournés pour les échecs de validation. Compte tenu de la copier-coller de la nature de Débordement de Pile, vous devez vous pas comprendre la configuration de quelque chose comme un 422 code d'état sur le succès de la demande comme une “démonstration” de la fonction. C'est incorrect, et aussi n'avait rien à voir avec la question posée par l'OP.
C'est un technicallity nous pouvons tous vivre avec. En fin de compte, je serait d'aider l'OP en lui permettant de maintenant, il/elle a choix multiples.
C'est cool, je t'ai eu!
OriginalL'auteur Mauro Casas
Essayez avec cette,
Formulaire HTML
JS Ajax
PHP Itinéraire
PHP Contrôleur
OriginalL'auteur CrsCaballero
ajax:
routes.php:
HomeController.php:
OriginalL'auteur user5065694