Pracuję nad aplikacją, która pozwala użytkownikowi edytować kilka dat w formularzu. Daty są renderowane w formacie europejskim (DD-MM-RRRR), a bazy danych używają domyślnego formatu RRRR-MM-DD.Jak obsługiwać wprowadzanie danych do daty w Laravel
Istnieje kilka sposobów, aby kodują/dekodować te dane iz powrotem z bazy danych do użytkownika, ale wszystkie one wymagają dużo kodu:
- użyć funkcji pomocnika przekonwertować datę przed zapisaniem i po pobraniu (bardzo kłopotliwe, wymaga dużo kodu)
- Utwórz osobny atrybut dla każdego atrybutu data i użyć metod
setNameAttribute
igetNameAttribute
dekodowanie/kodowanie (również kłopotliwe i brzydkie, wymaga dodatkowych tłumaczeń/zasady dla każdego atrybutu) - Skorzystaj z JavaScript, aby konwertować daty, gdy loa ding i przesłanie formularza (niezbyt wiarygodne)
Jaki jest najskuteczniejszy sposób przechowywania, wyszukiwania i sprawdzania dat i godzin od użytkownika?
Czy wyglądasz, jeśli możesz osiągnąć to, co chcesz, używając węgla, który jest wbudowany w laravel? – MikeWu
Sam datowanie parsowania nie jest problemem, już używam węgla do tego. Problem polega na tym, gdzie umieścić kod do konwertowania dat, nie chcę dodawać ton powtarzających się kodów konwersji w kontrolerach/widokach. Również Carbon zgłasza wyjątek podczas próby parsowania daty o niewłaściwym formacie, co nie jest idealne w przypadku wprowadzania danych przez użytkownika. – Arne