![]() |
![]() |
![]()
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?? |
|
|
![]() |
![]()
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. |
|
|
![]()
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.
|
|
|
![]()
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
|
|
|
![]()
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
|
|
|
![]()
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: 4. Pokaż kod jakim próbujesz zapisać użytkownika do bazy. |
|
|
![]()
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 |
|
|
![]()
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 |
|
|
![]()
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
![]() Ten post edytował M4ver7071 3.03.2015, 11:40:13 |
|
|
![]()
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ć.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 03:54 |