Pracujem na malej webovej aplikácii. V mojej žiadosti sa riadim nasledujúcim prístupom.
Malý prehľad systému
- Aplikácia bude hostená napríklad na serveri (www.example.com)
- Klienti ako Microsoft, Cocacola, IBM .... atď sa zaregistrujú. Klienti získajú prístup k aplikácii pomocou adresy URL (www.example.com/ibm)
- Každý klient bude mať samostatnú databázu na ukladanie svojich údajov.
- Ak sa chcú zamestnanci klienta prihlásiťsystém by potom mal byť vzor adresy URL takto: (Www.example.com/ibm/user/login) ibm - je klient - je regulátor login - je metóda užívateľského radiča
Spýtal som sa na rovnakú otázku a odpoveď bola opravená a odoslaná: CodeIgniter Pomocník - pomocou viacerých databáz na rovnakú aplikáciu a problém s URI Routing
Moje riešenie je v poriadku pre CodeIgniter 2.X, ale bohužiaľ nefunguje pre CodeIgniter 3.X.
Ako to dosiahnuť v CodeIgniter 3.X?
odpovede:
0 pre odpoveď č. 1Našiel som toto riešenie.
- Otvorte v textovom editore systém / core / router.php.
- Prejdite na číslo riadku 335 .... funkcia _validate_request (segmenty $)
Nahraďte funkciu _validate_request týmto kódom.
protected function _validate_request($segments) { if(count($segments)===1) { $segments[0]=""; } if(count($segments) > 1) { $x=$segments; $a=1; for($i=0;$i<(count($segments)-1); $i++) { $segments[$i]=$x[$a]; $a++; } unset($segments[$i]); } $c = count($segments); // Loop through our segments and return as soon as a controller // is found or when such a directory doesn"t exist while ($c-- > 0) { $test = $this->directory.ucfirst($this->translate_uri_dashes === TRUE ? str_replace("-", "_", $segments[0]) : $segments[0]); if ( ! file_exists(APPPATH."controllers/".$test.".php") && is_dir(APPPATH."controllers/".$this->directory.$segments[0])) { $this->set_directory(array_shift($segments), TRUE); continue; } return $segments; } // This means that all segments were actually directories return $segments; }