2016-09-27 2 views
1

J'utilise laravel form collective pour la génération automatique de formulaires dans le projet. je même formulaire pour ajouter et mettre à jour avec le modèle d'itinéraire contraignantméthode automatique POST ou PUT sous forme de larvar collective

{!! Form::model($operator, ['route' => ['operator.update', $operator->id]]) !!} 

et itinéraire pour cela est

Route::resource('operator','OperatorController'); 

Cela génère des itinéraires automatiques pour la méthode comme POST pour stocker et PUT pour les mises à jour

si j'utilise le formulaire collectif, alors par la méthode par défaut est POST à la fois pour stocker et mettre à jour si je change à PUT puis il a changé pour les deux

J'ai besoin détection de la méthode automatique comme si je me sers pour le magasin, il devrait être POST et PUT si elle est modifier la forme

pouvons-nous faire cela?

Répondre

1

Principalement si vous voulez détecter à la fois de cette situation, vous devez utiliser Form::open pour créer le mode et Form::model pour le mode de mise à jour (avec la méthode PUT) comme ceci:

@if(!empty($operator)) 
    {!! Form::model($operator, ['route' => ['operator.update', $operator->id], 'method' => 'PUT']) !!} 
@else 
    {!! Form::open(['route' => ['operator.store', $operator->id]]) !!} 
@endif 

Ce ci-dessus automaticlly ajouter _method champ masqué votre formulaire (avec valeur PUT) lors de la mise à jour. Vous devez également séparer pour les actions (store et update) comme c'est dans Laravel Docs sur Resource Controller.

+0

oui nous pouvons le faire comme ça aussi '@if (! Empty ($ operator)) @endif ' – ddw147

+0

donc cela aide-t-il? –

+0

Merci, c'est une bonne référence sur le difficile autrement à trouver, comment passer un paramètre de route, lors de l'utilisation d'un itinéraire nommé, lors de l'utilisation laravel html collective. – blamb