Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony2][SF][SF2] Rejestracja użytkownika - domyślna rola
M4ver7071
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 26.06.2014

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


Witam,



Posiadam CRUD do tworzenia użytkownika, domyślnie jak chce stworzyć nowego użytkownika to mam możliwość wyboru dla niego roli. Problem polega na tym, że chce aby domyślnie dla użytkownika była dodawana rola. W standardzie jest to : role, tabela user oraz tabela user_role. W tabeli user_role jest ID użytkownika i ID roli.
Wszystko ładnie tylko że jak usunę pola do wyboru danej roli i ustawie to na sztywno, to nie dodaje mi się do tabeli user_role ani id użytkownika ani id_roli.
W kodzie nic nie zmieniłem tylko zamiast select'a do wyboru roli zrobiłem hidden z ustawioną wartością. Jak to poprawić by działało prawidłowo, jakieś sugestie??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
blahy
post
Post #2





Grupa: Zarejestrowani
Postów: 82
Pomógł: 22
Dołączył: 20.07.2010

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


FosUserBundle uzywasz czy sam cos napisales?
Mozesz w konstruktorze encji usera dodac $this->addRole('ROLE_MOJA');
Nie zapomnij wywolac parent::__construct(); jesli jednak uzywasz FosUsera.
Go to the top of the page
+Quote Post
M4ver7071
post
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 26.06.2014

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


Nie używam FOSUserBundle. Zrobiłem encje User i Role, dałem do nich relacje i potem to wszystko połączyłem poprzez doctrine:generate:entities Acme/AcmeBundle/Entity/User itd.
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Podstawowe pytanie: czy masz ustawione kaskadowe zapisywanie relacji User<->Role? Dokumentacja: http://doctrine-orm.readthedocs.org/en/lat...cade-operations
Go to the top of the page
+Quote Post
M4ver7071
post
Post #5





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 26.06.2014

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


Po wygenerowaniu CRUD do encji User, w widoku dodania nowego użytkownika jest do wyboru kilka rol i jak ją wybiorę to wszystko ładnie się zapisuje. Jednak ja nie chce aby użytkownik mógł sobie sam wybrać uprawnienia więc chciałem na sztywno jest ustawić i tutaj jest problem. Bo w builderForm miałem add('roles') a teraz zmieniłem na add('roles', 'hidden,' array('data'=>'2', 'mapped' => true)) ale wtedy nie przypisuje roli dla użytkownika
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


To już wiemy, nie wiemy natomiast czy masz dobrze skonfigurowanego Doctrine'a.

1. Pokaż kod swoich encji.
2. Pokaż ich konfigurację jeżeli jest zapisana w formie XML/YAML/PHP, a nie adnotacji.
3. Pokaż jaki obiekt masz w pamięci przed zapisem:
  1. var_dump($user)

4. Pokaż kod jakim próbujesz zapisać użytkownika do bazy.
Go to the top of the page
+Quote Post
M4ver7071
post
Post #7





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 26.06.2014

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


O to kod metody
http://pastebin.com/gp2nMWCD

O to kod encji User:
http://pastebin.com/615JzkBD

O to kod encji Role:
http://pastebin.com/4sxgkE8u


var_dump($user)
http://pastebin.com/DdfFg1rg

Go to the top of the page
+Quote Post
Crozin
post
Post #8





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Przy takiej architekturze powinieneś:
1. Wcześniej wypełnić tabelę z rolami odpowiednimi wartościami (jednorazowa operacja).
2. Przed utworzeniem użytkownika wybrać z BD odpowiednie role.
3. Przy utworzeniu użytkownika dodać mu obiekty typu Role, a nie stringi reprezentujące nazwy roli.
4. Powinieneś mieć skonfigurowane kaskadowe dodawanie/usuwanie obiektów dla User::roles.

Ten post edytował Crozin 3.03.2015, 11:26:00
Go to the top of the page
+Quote Post
M4ver7071
post
Post #9





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 26.06.2014

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


Trochę zawiłe bo jak nie usunę tego pola w widoku to wszystko automatycznie się dodaje. Ale już poradziłem smile.gif dzięki !

Ten post edytował M4ver7071 3.03.2015, 11:40:13
Go to the top of the page
+Quote Post
Crozin
post
Post #10





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Jak co usuniesz co Ci się automatycznie dodaje? Bo nic nie ma prawa samo z siebie się dodać.
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: 22.08.2025 - 03:54