Napisany przez: eerie 22.09.2020, 13:32:18
Wysyłam metodą GET formularz, który ma ukryte pole "level". W klasie "UserSearchType" ustawiłem coś takiego:
Kod
->add('level', HiddenType::class, ['data' => 1])
Wydaje mi się, iż pole "level" powinno mieć cały czas wartość 1, a nie ma. Jest tak tylko po pierwszym kliknięciu "submit". Potem zmieniam wartość "level" w url'u i klikam ponownie "submit", ale wartość nie jest równa 1. Jest równa tyle, ile wcześniej ustawiłem w url'u (w tym przypadku edytując go ręcznie). Jak zrobić, aby po każdorazowym zatwierdzeniu formularza wartość "level" wynosiła zawsze 1, a nie tyle, ile ma akurat w url'u?
Napisany przez: ohm 22.09.2020, 18:44:36
Nigdy nie probowalem, ale wydaje mi sie ze attr read_only badz disabled powinien rozwiazac problem. Dziala w POST, w GET nigdy nie sprawdzalem.
Napisany przez: eerie 23.09.2020, 12:42:08
Udało mi się rozwiązać problem dodając parametr "level" na końcu uri (poza formularzem). W kodzie wystarczyło użyć:
Kod
$level = (int) ($request->query->get('level')
1);
Napisany przez: czachor 28.09.2020, 21:39:45
Trochę usprawniając:
$level = $request->query->getInt('level', 1);
- drugi parametr to domyślna wartość, jeśli nie podano jest w requeście.