2016-08-01 4 views
0

ich mehr Sub-Domain, die auf denselben Quellcode von CakePHP v3Set Default Präfix in CakePHP 3 basierend auf Sub-Domain

Szenario aufbauen will, ist

  1. Wenn Domain „admin.localhost.com "Der Präfixwert sollte admin sein.
  2. Wenn Domäne „xyz.localhost.com“, ‚abc.localhost.com‘ oder eine auf der Unterdomäne dann sollte Präfixwert seines Anbieter
  3. Wenn Domäne „localhost.com“ oder „www.localhost.com "Dann sollte der Präfix-Wert falsch sein, wie cakephp 3 standardmäßig hat.

Ich habe versucht, aus CakePHP 3 Dokument zu finden. aber ich habe nicht gelernt, wie man das Standardpräfix setzt. Präfix setzen in config/routs.php durch explodier HTTP_HOST

$exp_domain= explode(".",env("HTTP_HOST")); 

$default_prefix=false; // default prefix is false 
if(count($exp_domain)>2 && $exp_domain[0]!="www") 
{ 
    if($exp_domain[0]=="admin") $default_prefix="admin"; 
    else $default_prefix="vendor"; 
} 

if($default_prefix=="admin") 
{ 
    // default routes for vendor users with base scope and pass prefix as admin ($default_prefix) 
    Router::scope('/', function ($routes) use($default_prefix) { 
     $routes->connect('/', ['controller' => 'admins', 'action' => 'dashboard','prefix'=>$default_prefix]); 
     $routes->connect('/:action', ['controller' => 'admins','prefix'=>$default_prefix]); 
     $routes->connect('/:controller/:action', ['controller' => 'controller', 'action' => 'action','prefix'=>$default_prefix]); 
     $routes->connect('/:controller/:action/*', ['controller' => 'controller', 'action' => 'action','prefix'=>$default_prefix]); 

    }); 

} 
else if($default_prefix=="vendor") 
{ 
    // default routes for vendor users with base scope and pass prefix as vendor ($default_prefix) 
    Router::scope('/', function ($routes) use($default_prefix) { 
     $routes->connect('/', ['controller' => 'vendors', 'action' => 'dashboard','prefix'=>$default_prefix]); 
     $routes->connect('/:action', ['controller' => 'vendors','prefix'=>$default_prefix]); 
     $routes->connect('/:controller/:action', ['controller' => 'controller', 'action' => 'action','prefix'=>$default_prefix]); 
     $routes->connect('/:controller/:action/*', ['controller' => 'controller', 'action' => 'action','prefix'=>$default_prefix]); 
    }); 
} 
else 
{ 
    // default routes for normal users with base scope 
    Router::scope('/', function ($routes) use($default_prefix) { 
     $routes->connect('/', ['controller' => 'users', 'action' => 'dashboard'); 
     $routes->connect('/:action', ['controller' => 'users'); 
     $routes->connect('/:controller/:action', ['controller' => 'controller', 'action' => 'action'); 
     $routes->connect('/:controller/:action/*', ['controller' => 'controller', 'action' => 'action'); 
    }); 
} 

So Haupt-Trick

Vielen Dank im Voraus

Antwort

3

Ich habe Antwort meiner Frage mich

Wir haben wird müssen Präfix auf Stammbereich passieren .