Post
#1
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%)
|
Sytuacja wygląda nastęująco.
Mam URL który wygląda tak: http://cake/aktualnosci/tutaj-tytul-aktualnosci Ma to na celu oczywiscie zrobienie bardziej NiceURLs niz http://cake/news/1 Plik app/config/routes.php
W kontrolerze NewsController mam metodę showNews, która odpowiada za pobranie odpowiedniego newsa z modelu, na podstawie meta_name:
Jak do tej pory, wyszsko gra. Kolejna sprawa jest taka, że URLe http://cake/pages/kontakt, http://cake/pages/o-nas nie wygladaja OK, a bardziej OK wygladaja URLe http://cake/kontakt, http://cake/o-nas. Ten problem rozwiazalem kierujac caly nieznany ruch na kontrole Pages: Plik app/config/routes.php To ostania regułka, więc wszystko co nie zostanie złapane do innych konrolerów pójdzie do kontrolera Pages, metody subpage, która dalej decyduje co pokazać. Tu właśnie pies pogrzebany został :) Pojawił się URL http://cake/oferta/dla-firm. Jest kontroller Offers, jest Routing z oferta/ na kontroller OffersController. I dostaję błąd: You are seeing this error because the action dlafirm is not defined in controller OffersController. Ha, ale metoda dlafirm jak najbardziej istnieje w OffersController. Dalej, przszukałem http://groups.google.com/group/cake-php/ i znalazłem info, że można rozwiązać problem stosując brzydki hack w pliku app/config/bootstrap.php. Hack polega na przepisaniu $_GET['url'] i pozbyciu się myślników z URLa: Hack oczywiście robi swoje, i OffersController zaczyna widzieć metodę, wszystko działa. Działa, do momentu kiedy nie wrócimy do http://cake/aktualnosci/tutaj-tytul-aktualnosci. Po zastosowaniu hacka, ten URL staje się oczywiście http://cake/aktualnosci/tutajtytulaktualnosci (wewnątrz aplikacji) i nie zostaje w bazie znaleziony odpowiedni rekord. Zapisanie w bazie wersji bez myślników jest o tyle problematyczne, że wykorzystuję pole meta_name do budowy linków. Można ewentulanie za każdym razem w locie tworzyć meta_name na podstawie tytułu newsa /artykułu/whatever ale co z sytuacją, kiedy nie będzie się to działo automatycznie, tylko dam możliwość storzenia meta_name poprzez panel administracyjny. Wtedy tytuł newa może być "Zapraszamy do reklamy" a odpowiadający mu meta_name "to-bardzo-fajny-news". Jakieś pomysły, co zrobić z zainstniałą sytuacją? Nie znam cakePHP super-świetnie. Do tej pory poznawałem go w domowym zaciszu testując. Prawdziwe problemuy rodzą się właśnie w takich real-life sytuacjach. pozdr. Ten post edytował siemakuba 24.10.2006, 10:18:20 |
|
|
|
siemakuba [cakePHP] konstrukcja URLi a nazwy akcji 24.10.2006, 10:09:25
normanos Jakbyś bardziej przemyślał kontrukc... 24.10.2006, 11:25:20 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 00:11 |