2017-07-26 2 views
0

J'utilise Laravel Collective pour créer mon formulaire Web.Laravel Collective sélectionne la sortie null lorsqu'elle est soumise

{!! Form::select('сity_from', ['London', 'Tokyo', 'Moscow'], null, ['placeholder' => 'Choose city']) !!} 

qui produit le code HTML suivant:

<select id="сity_from" name="сity_from"> 
<option selected="selected" disabled="disabled" hidden="hidden" value>Choose city</option> 
<option value="London">London</option> 
<option value="Tokyo">Tokyo</option> 
<option value="Moscow">Moscow</option> 

lorsque je choisis aucune ville et soumettre le formulaire, puis dd($request->all()); dans le contrôleur je ne vois rien, je veux dire, il n'y a pas $request->all()['city_from']; Je souhaite obtenir ['city_from' = null] dans ce cas.

Je suppose que je dois changer la 'valeur' ​​dans

<option selected="selected" disabled="disabled" hidden="hidden" value>Choose city</option> 

à la valeur = "null"?

Ou autre chose? Je voudrais utiliser Laravel Collective pour résoudre ce problème. Je voudrais utiliser Laravel Collective pour résoudre ce problème.

+1

Essayez d'abord et avant tout le faire sans collective et voir si cela fonctionne comme prévu, de sorte que vous pouvez être sûr si la problème est vraiment avec le collectif –

Répondre

1

Je vous suggère de ne pas déranger avec la présence de 'city_from' dans votre demande. Vous pouvez utiliser $cityForm = $request->input('city_from'); Et vous aurez $cityForm ensemble à la valeur réelle ou à null

public function store(Request $request) 
{ 
    $cityForm = $request->input('city_from'); //will always be actual value or null 
} 
+0

Merci, Oleg. Dans le contrôleur, j'ai écrit: $ request_array = request() -> all(); $ request_array ['сity_from'] = request() -> entrée ('city_from'); dd ($ request_array); –

+0

En fait, la meilleure façon de transmettre la requête à une méthode est l'injection de dépendances. Je vais éditer le post et vous montrer comment les meilleures pratiques nous suggèrent de travailler avec les demandes :) – Oleg

+0

ouais, s'il vous plaît modifier. J'ai écrit 'request() -> input (' city_from) parce que c'est dans mon validateur FormRequest. ("class tourRequest extends FormRequest") et quand j'utilise $ request cela ne fonctionne pas ... Dois-je ajouter "class tourRequest extends FormRequest (Request $ request)"? –

0

supprimer

disabled="disabled"

et ajouter

value="null" 

espère que cela va résoudre le problème.

+0

Je l'espère aussi :) Mais comment le faire dans Laravel Collective? :) –

+0

{!! Form :: select ('сity_from', ['null' => 'Veuillez sélectionner', 'l' => 'London', 't' => 'Tokyo', 'm' => 'Moscow'], 'null ') !!} Je ne l'ai pas vérifié, mais cela devrait fonctionner. Faites-moi savoir s'il y a un problème. –