Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Cake] Polskie znaki w routes
Forum PHP.pl > Forum > PHP > Frameworki
Mike0
Dzień dobry,

Pracujez CakePHP i bawię się w routes. Niestety napotkałem pewny problem zwi±zany z polskimi znakami w ¶cieżce. Mianowicie, ma być opcja sortowania danych po pierwszej literze (wszystko na A, wszystko na B etc.) w zwi±zku z tym liki wygl±daj± tak:
  1. //View:
  2. //zwraca link z adresem np. http://mydomain.com/ctrler/sort/A, dla polskich znaków http://mydomain.com/ctrler/sort/letter:Ł
  3. echo $this->Html->link($letter, array('controller' => 'ctrler', 'action' => 'sort', 'letter' => $letter) );

Do tego ustawiłem routing w routes.php:
  1. Router::connect(
  2. '/ctrler/sort/:letter',
  3. array('controller' => 'ctrler', 'action' => 'sort'),
  4. 'pass' => array('letter'),
  5. 'letter' => '[A-Za-zżĽćńółę±¶Ż¬Ćˇ¦ĘŁÓŃ]'
  6. )
  7. );

Dla liter bez ogonków wszystko działa poprawnie, jednak gdy pojawiaj± się litery żĽćńółę±¶Ż¬Ćˇ¦ĘŁÓŃ link nie jest prawidłowy... Proszę o pomoc, jak rozwi±zać tę sprawę.

PS. próbowałem, z takim samym efektem pisz±c regex [\w], [^\d\s], .{1} etc - nic z tego nie działa przy PL literach, da się to obej¶ć?
kleus
na 99% nie jest to problem z CakePHP a raczej z kodowaniem znaków w bazie danych.
SprawdĽ dokładnie jak masz kodowanie znaków w bazie danych. z tego co pamiętam to cake używa dokładnie utf8_unicode_ci
Riggs
Chyba domy¶lne poł±czenie nie jest po UTF-8 w Cake (przynajmniej w domy¶lnym configu). Dodaj do poł±czenia parametr "'encoding' => 'utf8'" i sprawdĽ czy będzie ok
Mike0
Dzięki za odpowiedzi, jednak nie bardzo wiem, czemu w ogóle wskazujecie na bazę danych skoro o niej w ogóle mowy nie ma i nie widzę tu jakiego¶ zwi±zku no ale może sie nie znam ohno-smiley.gif Mi chodzi o generowanie linków helperem i ich routing, tak by regex przy routingu mógł dopasować polskie znaki, czego teraz nie mogę osi±gn±ć....

Zreszt± przy połaczeniu z baz± mam UTF-8 ustawione i też w config:
  1. /**
  2.  * Application wide charset encoding
  3.  */
  4. Configure::write('App.encoding', 'UTF-8');
To jest wersja lo-fi głównej zawarto¶ci. Aby zobaczyć pełn± wersję z większ± zawarto¶ci±, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.