Obtenir le sous-domaine dans un sous-domaine de l'itinéraire (Laravel)

Je suis en train de construire une application où un sous-domaine qui pointe vers un utilisateur. Comment puis-je obtenir le sous-domaine-partie de l'adresse, ailleurs que dans un itinéraire?

Route::group(array('domain' => '{subdomain}.project.dev'), function() {

    Route::get('foo', function($subdomain) {
        //Here I can access $subdomain
    });

    //How can I get $subdomain here?

});

J'ai construit un malpropre de travail autour, cependant:

Route::bind('subdomain', function($subdomain) {

    //Use IoC to store the variable for use anywhere
    App::bindIf('subdomain', function($app) use($subdomain) {
        return $subdomain;
    });

    //We are technically replacing the subdomain-variable
    //However, we don't need to change it
    return $subdomain;

});

La raison pour laquelle je veux utiliser la variable en dehors de l'itinéraire pour établir une base de données-connexion en fonction de cette variable.

  • Vous pouvez vérifier la Demande::serveur('PATH_INFO') et de l'extrait de la chaîne avant le premier point.
  • Vrai, même si elle semble sale, alors Laravel de type de a que les fonctionnalités out-of-the-box. Je voudrais trouver une façon plus propre.
  • array_shift(explode(".",$_SERVER['HTTP_HOST'])) Nettoyeur de qui?
  • Nice et la solution la plus simple. array_shift accepte uniquement une variable si, comme il est passé par référence, mais j'ai utilisé ceci à la place: list($subdomain) = explode('.', Request::server('HTTP_HOST')). Un "Laravel maternelle" la solution serait encore bien.
  • Je ne suis pas dans une position pour essayer cela, mais comment passer $subdomain à la route groupe de paramètres de la fonction? Route::group(array('domain' => '{subdomain}.project.dev'), function($subdomain) {} et ensuite utiliser use pour Route::get()
  • L'Itinéraire::groupe la fermeture accepte un seul argument, qui est rempli avec un objet Routeur. Vous ne pouvez pas commencer à mettre les paramètres de la route comme arguments pour les fermetures jusqu'à l'Itinéraire::get() de fermeture/méthode de contrôleur.

InformationsquelleAutor Martti Laine | 2013-09-24