Używam pickadate.js i mieć problem z walidment Lavel. Jeśli wysłać formularz z datepicker do mojej aplikacji, są dwie pola. birthday i birthday_submit. Ostatni jest tworzony przez pickadate.js i zawiera datę w następującym formacie: yyyy/mm/dd.

Mój model ma kolumnę birthday. A moje walidacja wygląda następująco:

$request->validate([
            "first_name"=>"required_without:last_name",
            "email"=>"nullable|email",
            "birthday_submit"=>"nullable|date"
        ]);

Jeśli przekazuję go do funkcji create() (elokwentką), a następnie otrzymuję błąd, że birthday_submit nie istnieje.

Czy istnieje sposób na zmianę nazwy birthday_submit do birthday, więc mogę go przypisać? Również komunikaty o błędach byłyby lepsze, ponieważ użytkownik nie powinien uzyskać komunikatu o błędzie, że birthday_submit jest nieprawidłowy.

0
Gamestar 23 marzec 2020, 01:40

1 odpowiedź

Najlepsza odpowiedź

Możesz "interfere" za pomocą parametru $request, robiąc coś takiego przed walidowaniem:

$request->merge(['birthday' => $request->birthday_submit]);

Zasadniczo wkładasz inne pole wewnątrz $request za pomocą klawisza birthday i wartość birthday_submit

Następnie możesz użyć tego pola w walidacji.

1
pr1nc3 22 marzec 2020, 22:54