• 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
161 wizyt
pytanie zadane 15 grudnia 2018 w PHP, Symfony, Zend przez kenjiro244 Dyskutant (8,090 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 (184,650 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 Dyskutant (8,090 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 Dyskutant (8,090 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 153 wizyt
pytanie zadane 21 kwietnia 2018 w PHP, Symfony, Zend przez wneku Nowicjusz (200 p.)
0 głosów
1 odpowiedź 37 wizyt
pytanie zadane 23 kwietnia w PHP, Symfony, Zend przez `Krzychuu Stary wyjadacz (12,730 p.)
0 głosów
1 odpowiedź 168 wizyt
pytanie zadane 4 czerwca 2016 w PHP, Symfony, Zend przez patryk23 Początkujący (300 p.)
Porady nie od parady
Wynikowy wygląd pytania, odpowiedzi czy komentarza, różni się od tego zaprezentowanego w edytorze postów. Stosuj więc funkcję Podgląd posta znajdującą się pod edytorem, aby upewnić się, czy na pewno ostateczny rezultat ci odpowiada.Podgląd posta

64,959 zapytań

111,437 odpowiedzi

234,530 komentarzy

46,789 pasjonatów

Przeglądających: 115
Pasjonatów: 0 Gości: 115

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.

...