• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Symfony Security problem z JSON

+1 głos
93 wizyt
pytanie zadane 15 grudnia 2018 w PHP, Symfony, Zend przez kenjiro244 Mądrala (7,280 p.)

Witam zaczynam z symfony i chciałbym stworzyć system logowania.

Zgodnie z dokumentacją security tworzę entity User który następnie chciałbym wysłać do bazy danych mysql na xampie. Jednak kiedy wykonuje: doctrine:migrations:migrate pojawia się błąd:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'JSON NOT NULL, password VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_8D93D64
9E7927C7' at line 1"

Czyli jest problem z JSON teraz prawdopodobnie jest to błąd związany z tym że moja wersja serwera mysql nie obsługuje JSON według tego wpisu. Teraz jak jestem w stanie to naprawić? Czy jedynym sposobem jest ręczne podniesienie wersji co nie wydaje się interesującym procesem :(. Czy może powinien zmienić wersję serwera w pliku doctrine.yaml która automatycznie ustawiana jest na 5.7.

W phpMyAdmin znalazłem taki wpis:

Wersja klienta bazy danych: libmysql - mysqlnd 5.0.12-dev - 20150407 - $Id: 

jednak ustawianie wersji na 5.0.12 nie poprawia w żaden sposób efektu końcowego.

komentarz 15 grudnia 2018 przez Tomek Sochacki Mędrzec (169,690 p.)
to zrob po prostu dockera z odpowiednią baza, ale rak w ogole to dlaczego upierasz sie przy mysl jesli chcesz pracowac z jsno? tak, wiem ze mysl obsluguje json ale bardzo mozliwr, ze lepsza do twojego problemu bylaby jakas baza typu mongodb, ktora by default pracuje z kolekcjami jsonow i ma narzędzia do ich analizy.
komentarz 15 grudnia 2018 przez kenjiro244 Mądrala (7,280 p.)
Czy chcę pracować z json? Nie wiem json jest potrzebne do jednego pola w tablicy dla ról użytkownika. Które jest tworzone automatycznie po skorzystaniu z opcji make:user.

Nawet nie wiem czy potem będę z niego korzystał, a narazie korzystam z dokumentacji i idę krok po kroku.

1 odpowiedź

0 głosów
odpowiedź 16 marca przez Eleanor67 Początkujący (440 p.)
wybrane 17 marca przez kenjiro244
 
Najlepsza

Przy niektórych wersjach mysql występuje problem z formatem json i pojawia się błąd przy próbie zapisu do bazy.

Po pierwsze - zamień typ pola w entity, z json na text. Zapewne chodzi o pole z rolami userów.

/**
 * @ORM\Column(type="text")
 */
private $roles = [];

Następnie usuń pliki z folderu "Migrations", bo jeśli przed update'm bazy używałeś komendy

doctrine:migrations:diff

To plik z błędnym zapytaniem się zapisał i przy każdym uruchomieniu 

doctrine:migrations:migrate

Wczytują się wszystkie po kolei.

Czyli nawet jeśli zmienisz typ pola i uruchomisz tę komendę, to mimo wszystko wyskoczy błąd, bo zostanie odczytany wcześniej zapisany plik. Jeśli usuniesz poprzednie wersje migracji (może wystarczy poprzednio wygenerowany plik, nie jestem pewna), to wszystko powinno być już ok.

komentarz 17 marca przez kenjiro244 Mądrala (7,280 p.)

Jak nietrudno się domyślić już do tego doszedłem ;D. Zrobiłem jednak inaczej a mianowicie zmieniłem wersję serwera na niższą a potem wygenerowałem jeszcze raz od nowa usera oraz usunąłem migrację i wszystko poszło( Przynajmniej z tego co pamiętam). To dokładnie jest odpowiedź na ten problem:

Czyli nawet jeśli zmienisz typ pola i uruchomisz tę komendę, to mimo wszystko wyskoczy błąd, bo zostanie odczytany wcześniej zapisany plik. Jeśli usuniesz poprzednie wersje migracji (może wystarczy poprzednio wygenerowany plik, nie jestem pewna), to wszystko powinno być już ok.

komentarz 17 marca przez Eleanor67 Początkujący (440 p.)
Tak też myślałam, że już na to wpadłeś, ale sama napotkałam ten problem przy nowym projekcie w Symfony 4.2, a chwilę mi zajęło jego rozgryzienie :P Sam błąd wpisany w googlu sugeruje, że problemem jest ten diabelski json, nawet jak w następnym zapytaniu go nie ma, więc pomyślałam, że nie zaszkodzi dopisać odpowiedź.

Podobne pytania

0 głosów
4 odpowiedzi 144 wizyt
pytanie zadane 21 kwietnia 2018 w PHP, Symfony, Zend przez wneku Nowicjusz (200 p.)
0 głosów
1 odpowiedź 153 wizyt
pytanie zadane 4 czerwca 2016 w PHP, Symfony, Zend przez patryk23 Początkujący (290 p.)
+1 głos
1 odpowiedź 70 wizyt
pytanie zadane 27 lipca 2016 w PHP, Symfony, Zend przez GaCeL Dyskutant (7,570 p.)
Porady nie od parady
Pytania na temat serwisu SPOJ należy zadawać z odpowiednią kategorią dotyczącą tej strony.SPOJ

62,231 zapytań

108,343 odpowiedzi

226,151 komentarzy

34,591 pasjonatów

Przeglądających: 161
Pasjonatów: 13 Gości: 148

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...