Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CakePHP] Wyszukiwarka i i18n
Forum PHP.pl > Forum > PHP > Frameworki
kicaj
Jak zbudowac wyszukiwarke kiedy uzywam i18n i Translate Behavior?
Searchable Behavior nie pomaga tutaj...

Dokladniej: Problem polega na tym, ze mamy dwie tabele:
Products: id, created, modified...
I18n: id, model, name, foreign_key, content...

Nie mamy tutaj pol (np. name, description, etc.) w Products co sprawia problem przy uzywaniu skladni SQL LIKE, wiec jak rozwizac ten problem aby moc szukac? Mam na mysli najprostrza wyszukiwarke?
ZenekN
Stary kotlet ale jary!

Jak rozwiązałeś problem sprzed 4 lat ;T ?
kicaj
Wyciąg z metody szukającej po slug'u - może się przyda:

  1. function findBySlug($slug = '', $field = 'slug') {
  2. $alias = $this->alias . '.' . $field;
  3.  
  4. // Sprawdza czy Model uzywa Translate Behavior oraz czy pole $field jest dodane jako tlumaczone
  5. if (isset($this->actsAs['Translate']) && in_array($field, $this->actsAs['Translate'])) {
  6. $alias = 'I18n__' . $field;
  7.  
  8. if (Configure::read('Config.language') !== DEFAULT_LANGUAGE) {
  9. $alias .= '__' . $this->locale[0];
  10. }
  11.  
  12. $alias .= '.content';
  13. }
  14.  
  15. $result = $this->find('first', array(
  16. 'conditions' => array(
  17. $alias => $slug
  18. )
  19. ));
  20.  
  21. if (empty($result) && Configure::read('Config.language') !== DEFAULT_LANGUAGE) {
  22. // Pobiera rekord dla domyslnego rekordu
  23. $result = $this->find('first', array(
  24. 'conditions' => array(
  25. str_replace('__' . Configure::read('Config.language'), '__' . DEFAULT_LANGUAGE, $alias) => $slug,
  26. )
  27. ));
  28. }
  29.  
  30. return $result;
  31. }
kleus
Trochę się naszukałem ale znalazłem
https://github.com/joostdekeijzer/CakePHP-I18nSearch

Kiedyś mi pomogło
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.