![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 114 Pomógł: 0 Dołączył: 3.08.2017 Ostrzeżenie: (0%)
|
O ile się nie mylę, formularz w Symfony zwraca wartości w postaci niepustego string'a lub null'a dla braku wartości. Zaleca się, aby stosować dokładne przyrównania (===) wszędzie tam, gdzie to jest możliwa. W związku z tym mam wątpliwość, czy zapis z kodu poniżej jest poprawny:
Kod /** * @Assert\IsFalse( * message="Strona www musi rozpoczynać się od znaków: http://" * ) */ public function isUrlValid(): bool { $urlValid = $this->url != '' && substr($this->url, 0, 7) != 'http://' && substr($this->url, 0, 8) != 'https://'; return $urlValid; } Czy nie powinienem zapisywać to w ten sposób (przyrównanie do null'a): Kod /** * @Assert\IsFalse( * message="Strona www musi rozpoczynać się od znaków: http://" * ) */ public function isUrlValid(): bool { return $this->url !== null && substr($this->url, 0, 7) !== 'http://' && substr($this->url, 0, 8) !== 'https://'; } Poza tym lepiej będzie chyba, jeśli return zwróci wynik bezpośrednio z równania, a nie ze zmiennej. Do tego (link poniżej) chyba źle nazwałem dwie metody sprawdzające. Powinno być isNewAndRepeatPasswordGiven() zamiast isNewOrRepeatPasswordGiven(). A także isNotUserEmail() zamiast isUserEmail(). https://github.com/webeeq/symfony.eeq/blob/...ditUserForm.php |
|
|
|
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Gdy cos moze byc pustym tekstem lub NULLem to nie mozesz porownywac tylko do jednego. Lepiej uzyj wiec empty()
Choc tutaj wydaje mi sie i tak ze masz chyba bledy w warunkach logicznych. && substr($this->url, 0, 7) !== 'http://' && substr($this->url, 0, 8) !== 'https://'; chyba sie wykluczaja nawzajem albo ja zglupialem po swietach (IMG:style_emoticons/default/wink.gif) |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 144 Dołączył: 22.12.2010 Ostrzeżenie: (0%)
|
Pomijajac juz kwestie walidacji itp, to do adresow masz
https://symfony.com/doc/current/reference/c...raints/Url.html A jak bys chcial recznie robic, to wydaje mi sie ze regexem byloby lepiej/ladniej. |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 114 Pomógł: 0 Dołączył: 3.08.2017 Ostrzeżenie: (0%)
|
Ten warunek działa dobrze. Wyświetla się błąd, gdy podana jest wartość (adres URL) i nie zaczyna się od http:// i https:// jednocześnie. Ale faktycznie można to zrobić dużo prościej i lepiej.
Dzięki serdeczne za pomoc. (IMG:style_emoticons/default/smile.gif) |
|
|
|
![]() ![]() |
|
Aktualny czas: 20.12.2025 - 18:36 |