Comment utiliser la demande de paramètre de route dans Laravel 5 formulaire de demande?
Je suis nouveau sur Laravel 5 et je suis en train d'utiliser le nouveau Formulaire de Demande de valider toutes les formes dans mon application.
Maintenant je suis coincé à un point où j'ai besoin de SUPPRIMER une ressource et j'ai créé un DeleteResourceRequest pour juste utiliser la méthode authorize.
Le problème est que j'ai besoin de trouver quelle pièce d'identité est demandée dans le paramètre de route mais je ne vois pas comment faire pour l'autoriser méthode.
Je peux utiliser le code dans la méthode de contrôleur de la sorte:
public function destroy($id, DeletePivotRequest $request)
{
Resource::findOrFail($id);
}
Mais la manière de l'obtenir pour travailler dans les autoriser la méthode de la Demande?
Vous devez vous connecter pour publier un commentaire.
C'est très simple, il suffit d'utiliser la
route()
méthode. En supposant que votre itinéraire paramètre est appeléid
:post
si vous avezRoute::resource('post', ...)
$this->route('foo)
ne fonctionne pas pour moi à partir d'un Laravel 5.2 Contrôleur ("erreur de l'évaluation de code"). Alors queRoute::current()->getParameter('foo')
n' - (voir ma réponse.) A quelque chose de changé, ou dois-je charger quelque chose d'autre en premier?authorize
dans ce cas) Laroute
méthode existe toujours sur l'objet de la requête, mais n'a jamais sur le contrôleur.Vous pouvez accéder à un paramètre de Route de la Valeur via Éclairer\Http\instance de Requête
Laravel 5.2, à partir d'un contrôleur:
J'ai trouvé ce utile si vous voulez utiliser la même méthode de contrôleur pour plus d'un itinéraire avec plus d'un paramètre de l'URL, et peut-être tous les paramètres ne sont pas toujours présents ou peuvent apparaître dans un ordre différent...
c'est à dire
getParameter('id')
va vous donner la réponse correcte, indépendamment de{id}
position de l'dans l'URL.Voir Laravel Docs: l'Accès à l'Itinéraire Actuel
Selon la façon dont vous avez défini le paramètre dans vos itinéraires.
Pour mon cas ci-dessous, ce serait:
'user'
pas'id'
$id = $this->route('user');
Je suis venu ici à la recherche d'une réponse et a trouvé dans les commentaires, donc tenais à préciser pour les autres à l'aide d'une ressource de route en essayant de l'utiliser dans un formulaire de demande
comme mentionné par lukas dans son commentaire:
Étant donné un contrôleur de ressources
Route::resource('post', ...)
le paramètre, vous pouvez utiliser sera nommépost
Cela a été utile pour moi, mais pas tout à fait terminée. Il semble que le paramètre doit être le singulier version de la dernière partie de la ressource stub.
Dans mon cas, l'itinéraire a été défini comme
$router->resource('inventory/manufacturers', 'API\Inventory\ManufacturersController');
Et le paramètre disponible a été
manufacturer
(au singulier version de la dernière partie de la stubinventory/manufacturers
)