Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] [Code igniter] źle działąjący rooting
Octobus
post
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 1
Dołączył: 3.07.2011

Ostrzeżenie: (0%)
-----


Mam taki rooting w Code igniter:

  1. $route['default_controller'] = "client/homepage";
  2. $route['admin'] = "admin/objects";
  3. $route['admin/(:any)'] = "admin/$1";
  4. $route['auth/(:any)'] = "auth/$1";
  5. $route['auth'] = "auth";
  6. $route['(:any)'] = "client/$1";
  7. $route['404_override'] = '';


i jak wpiszę strona.pl/obiekt/1 to zamiast wywolac kontroler obiekt z argumentem to jest 404 :/ próbowałem dorzucić do tego
$route['obiekt/(:any)'] = "client/obiekt/$1";
ale to nie działa, jeżeli z powyższej linijki usune /$1 to wtedy jest ok, ale nie przekazuje identyfikatora do kontrolera wiec tez lipa :/ nie wiem czy nie za bardzo zamotalem z tym rootingiem :/

Ten post edytował Octobus 3.04.2014, 06:09:20
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
markuz
post
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


A masz kontroler o nazwie "client" a w nim metodę "obiekt" z 1 parametrem?
Może masz dodatkowy kontroller o nazwie "obiekt" z metodą index bez żadnego argumentu?
Ja zawsze używałem CI w ten sposób:
Kontroler: ClientController
Metoda: showObjectAction($id)
Router: $route["obiekt/(:num)"] = "ClientController/showObjectAction/$1";

Wtedy nie masz problemów z nazewnictwem.
Ps. jak przekazujesz tylko id w parametrze to używaj (:num) zamiast (:any)

Edit. Dopiero teraz zauważyłem, że masz router: $route['(:any)'] = "client/$1";
Umieść go na początku zaraz po default_controller.

CI podmieni Ci wszystkie routery na ten ostatni przez co wszystko będzie Cię przenosić na client/$1.

Ten post edytował markuz 3.04.2014, 06:30:08
Go to the top of the page
+Quote Post
Octobus
post
Post #3





Grupa: Zarejestrowani
Postów: 259
Pomógł: 1
Dołączył: 3.07.2011

Ostrzeżenie: (0%)
-----


Cytat(markuz @ 3.04.2014, 07:16:51 ) *
A masz kontroler o nazwie "client" a w nim metodę "obiekt" z 1 parametrem?

mam folder client w nim kontroler obiekt (nazwa pliku i klasy taka sie zgadzaja)

Cytat(markuz @ 3.04.2014, 07:16:51 ) *
Może masz dodatkowy kontroller o nazwie "obiekt" z metodą index bez żadnego argumentu?

wlasnie nie ;/ poza tym jak daje bez parametru to dziala :/ dalem tak index($id = 1) i jak daje bez parametru to rooting wchodzi a funkcja sie wykonuje (nie brakuje argumentu)

Cytat(markuz @ 3.04.2014, 07:16:51 ) *
Ja zawsze używałem CI w ten sposób:
Kontroler: ClientController
Metoda: showObjectAction($id)
Router: $route["obiekt/(:num)"] = "ClientController/showObjectAction/$1";

Wtedy nie masz problemów z nazewnictwem.
Ps. jak przekazujesz tylko id w parametrze to używaj (:num) zamiast (:any)

Edit. Dopiero teraz zauważyłem, że masz router: $route['(:any)'] = "client/$1";
Umieść go na początku zaraz po default_controller.

CI podmieni Ci wszystkie routery na ten ostatni przez co wszystko będzie Cię przenosić na client/$1.



zmieniłem na:
  1. $route['default_controller'] = "client/homepage";
  2. $route['(:any)'] = "client/$1";
  3. $route['admin'] = "admin/objects";
  4. $route['admin/(:any)'] = "admin/$1";
  5. $route['auth/(:any)'] = "auth/$1";
  6. $route['auth'] = "auth";
  7. $route['404_override'] = '';



ale nic sie nie zmienilo, mam podzielona aplikacje na client/admin dla tego taki rooting ...
Go to the top of the page
+Quote Post
markuz
post
Post #4





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


CI nie przewiduje osobnych folderów na kontrolery.. Jak wpiszesz client/obiekt/1 to wtedy CI szuka kontrolera o nazwie Client z metodą obiekt i 1 parametrem..
Go to the top of the page
+Quote Post
Octobus
post
Post #5





Grupa: Zarejestrowani
Postów: 259
Pomógł: 1
Dołączył: 3.07.2011

Ostrzeżenie: (0%)
-----


ale w admin'ie to dziala, mam np. strona.pl/admin/objects/edit/1 i mi wchodzi do kontrolera objects, metode edit z parametrem 1
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 21:39