Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne]Symfony2 - dodawanie użytkowników do BD - polskie znaki
Forum PHP.pl > Forum > Przedszkole
kosmos
Witam,
testowo dodaję użytkownia do bazy w taki sposób:

  1.  
  2. public function dodajAction(){
  3.  
  4. $user = new User();
  5. $factory = $this->container->get('security.encoder_factory');
  6. $encoder = $factory->getEncoder($user);
  7. $pwd = $encoder->encodePassword('łukasz', $user->getSalt());
  8. $user->setUsername('łukasz');
  9. $user->setEmailAddress('exampleas@example.com');
  10. $user->setRoles('ROLE_SUPER_ADMIN');
  11. $user->setSalt($user->getSalt());
  12. $user->setPassword($pwd);
  13.  
  14. $em = $this->getDoctrine()->getEntityManager();
  15. $em->persist($user);
  16. $em->flush();
  17.  
  18. return $this->render('AcmeLogowanieBundle:Default:dodano.html.twig');
  19. }
  20.  




użytkownika "bartek" (brak polskich znaków) dodaję bezproblemowo. Natomiast użytkownika "łukasz" błędnie bez nazwy:

http://naforum.zapodaj.net/89472e2d6108.jpg.html

Wyczytałem w sieci że pomoże w tym odpowiedni wpis w pliku database.yml, niestety nie mogę znaleźć takiego pliku w bundlu.


Bazę jak i rekordy w tabeli mam ustawione na UTF8_general_ci

Nie orientuję się w odpowiednich ustawieniach parametrów Bundla:
1. parameters.yml

  1.  
  2.  
  3. { parameters: { database_driver: pdo_mysql, database_host: 127.0.0.1, database_port: 3306, database_name: logowanie, database_user: root, database_password: null, mailer_transport: smtp, mailer_host: 127.0.0.1, mailer_user: null, mailer_password: null, locale: pl, secret: bc7d8d3e91419c85e1ca63a851bdd489, debug_toolbar: true, debug_redirects: false, use_assetic_controller: true, database_path: null } }
  4.  


locale zmieniłem na pl

2. config.yml

  1.  
  2. imports:
  3. - { resource: parameters.yml }
  4. - { resource: security.yml }
  5.  
  6. framework:
  7. #esi: ~
  8. #translator: { fallback: "%locale%" }
  9. secret: "%secret%"
  10. router:
  11. resource: "%kernel.root_dir%/config/routing.yml"
  12. strict_requirements: ~
  13. form: ~
  14. csrf_protection: ~
  15. validation: { enable_annotations: true }
  16. templating:
  17. engines: ['twig']
  18. #assets_version: SomeVersionScheme
  19. default_locale: "%locale%"
  20. trusted_hosts: ~
  21. trusted_proxies: ~
  22. session:
  23. # handler_id set to null will use default session handler from php.ini
  24. handler_id: ~
  25. fragments: ~
  26. http_method_override: true
  27.  
  28. # Twig Configuration
  29. twig:
  30. debug: "%kernel.debug%"
  31. strict_variables: "%kernel.debug%"
  32.  
  33. # Assetic Configuration
  34. assetic:
  35. debug: "%kernel.debug%"
  36. use_controller: false
  37. bundles: [ ]
  38. #java: /usr/bin/java
  39. filters:
  40. cssrewrite: ~
  41. #closure:
  42. # jar: "%kernel.root_dir%/Resources/java/compiler.jar"
  43. #yui_css:
  44. # jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
  45.  
  46. # Doctrine Configuration
  47. doctrine:
  48. dbal:
  49. driver: "%database_driver%"
  50. host: "%database_host%"
  51. port: "%database_port%"
  52. dbname: "%database_name%"
  53. user: "%database_user%"
  54. password: "%database_password%"
  55. charset: UTF8
  56. # if using pdo_sqlite as your database driver, add the path in parameters.yml
  57. # e.g. database_path: "%kernel.root_dir%/data/data.db3"
  58. # path: "%database_path%"
  59.  
  60. orm:
  61. auto_generate_proxy_classes: "%kernel.debug%"
  62. auto_mapping: true
  63.  
  64. # Swiftmailer Configuration
  65. swiftmailer:
  66. transport: "%mailer_transport%"
  67. host: "%mailer_host%"
  68. username: "%mailer_user%"
  69. password: "%mailer_password%"
  70. spool: { type: memory }
  71.  




W doctrine: dbal: mam ustawienie charset: UTF8. Wyczytałem że w tym pliku powinna znajdować się jeszcze linijka

  1.  
  2.  
  3. framework:
  4. charset: UTF-8
  5.  




Ale po jej dodaniu mam błędy typu:

  1.  
  2.  
  3. FileLoaderLoadException: Cannot import resource "C:\xampp\htdocs\Logowanie3\app/config\config.yml" from "C:\xampp\htdocs\Logowanie3\app/config/config_dev.yml". (Unable to parse at line 7 (near " secret: "%secret%"").)
  4.  




Co i gdzie powinienem zmienić aby do bazy zapisywali mi się użytkownicy z polskimi znakami w imieniu?

Dodatkowo co należy zmienić, dodać, aby w treściach plików ...html.twig były widoczne polskie znaki?

Dodatkowo co należy zmienić, dodać, aby w treściach plików ...html.twig były widoczne polskie znaki?
ZaqU
Jeżeli chodzi o polskie znaki, to upewnij się, czy:
1) Pliki *.html.twig są zapisywane z kodowaniem UTF-8 (bez BOM) - jeżeli nie, to taką opcję musisz ustawić w środowisku w którym pracujesz. Najłatwiej otworzyć taki plik bezpośrednio Notepadem++ i sprawdzić w zakładce menu "Format".
2) W wygenerowanej na podstawie plików *.html.twig stronie znajduje się w sekcji HEAD nagłówek META definiujący kodowanie UTF-8.

W sprawie Symfony2 to nie pomogę, bo sam zaczynam przygodę z tym frameworkiem, ale z tego co zauważyłem, często brakuje tam jakichś plików konfiguracyjnych YAML i zazwyczaj trzeba je tworzyć samemu (co oczywiście nie jest żadnym błędem). Jeżeli znalazłeś już gdzieś rozwiązanie, to nie szukaj na próżno pliku którego w pakiecie nie ma, tylko samemu go utwórz, o ile jest to oczywiście możliwe.
kosmos
Miałeś rację.
Okazało się że środowisko w którym pracuję, nadawało domyślnie kodowanie ANSI facepalmxd.gif
Dzięki za nakierowanie i pomoc w rozwiązaniu problemu!
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.