2017-09-28 3 views
0

Je suis en train d'ajouter des paramètres en option à mon itinéraire à domicile qui estAjouter option Paramètre à la base Route dans Laravel

Route::get('/{selectDate?}', [ 
    "as" => "/", 
    "uses" => "[email protected]" 
]); 

et ma fonction d'index est comme

public function index($date = null) 
    { 
     if($date!=null){ 
     //some line of codes 
     } 

    } 

et i déclencher paramètre optionnel par une liste de sélection sur la fonction de changement qui est

$(function() { 
      $('#selectDate').on('change', function() { 
       window.location.href = '{{route("/")}}' + "/" + this.value; 
      }); 
}); 

question est maintenant quand je frappe un autre lien de la page d'accueil, ils vont tous dans la fonction d'index pas dans leurs propres fonctions écrites. Besoin d'aide concernant ce problème.

+0

S'il vous plaît nous montrer votre fichier 'routes/web.php' – Sebastian

+0

@Sebastian' routes/web.php' est déjà posté sur le premier bloc –

+0

@MayankPandeyz ceci est seulement un itinéraire. Je veux voir tout le fichier. – Sebastian

Répondre

1

Toute chaîne correspond à un paramètre facultatif, il y a 2 options pour résoudre ce problème.

Vous pouvez mettre cette route au bas de votre fichier de route web.php, les routes seront appariées sur une base de premier arrivé-premier servi, donc elle ne passera à cette route que si aucune autre route ne correspond à l'URL donnée .

Votre deuxième option utilise regex pour définir le paramètre optionnel pour lequel plus d'informations peuvent être trouvées here. En bref, vous pouvez utiliser

Route::get('/{selectDate?}', [ 
    "as" => "/", 
    "uses" => "[email protected]" 
])->where('selectDate', '/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/'); 

Après cela, le selectDate doit toujours correspondre à un modèle comme 01-01-2000.
regex non testé et copié de this répondre SO

1

Dans ce cas, vous devez vérifier le paramètre itinéraire à l'aide Regular Expression Constraints comme:

Route::get('{user_tipe}/event', 'admin\[email protected]')->where('user_tipe', 'admin'); 

où route détectera admin et si elle correspond alors itinéraire spécifique travailler, sinon pas.

+0

c'est utile –