Witam,
zawsze sprawiało mi to problem, nie umiem uruchomić walidacji zawierającej wyrażenie regularne, czy ktoś mógłbym napisać mi jak to powinno być i dlaczego?
wyrażenie regularne: ^\d{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$
prawidłowe dane YYYY-MM-DD np 2019-06-17
Wyrażenie jest prawidłowe, problem stanowi uruchomienie go wewnątrz walidacji od Laravela.
Kod:
<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class FiltersRequest extends FormRequest { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'date' => 'required|regex:/\d{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])/', // CZESC KTORA NAS INTERESUJE ]; } }
Ale przecież masz validator daty https://laravel.com/docs/5.8/validation#rule-date
Bardziej się nada ten: https://laravel.com/docs/5.8/validation#rule-date-format
Kompletnie zapomniałem o "date_format"
dzięki.
A co do regex czy ktoś wie dlaczego to nie działa, bo chciałbym jednak się nauczyć stosować regex w laravel
Nie działa bo:
Ja ogólnie polecam używać tablic zamiast stringów, jak dla mnie to chyba jakieś przyzwyczajenia z CodeIgniter albo podobnych FW.
Do tablic wrzucisz obiekt Rule, łatwiej manipulować np. dodać rule w zależności od jakichś warunków itp.
The article you shared here is very awesome. I really like and appreciate your work. I have read your article deeply, the points that you mentioned in this article are useful
http://www.girlsgo2games.com/
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)