Gdy użytkownik wypełnia wiadomość (textarea), nie może wypełnić wartości daty, czasu i miejsca.
Te trzy pola będą uwzględniane tylko wtedy, gdy wiadomość jest pusta i wszystkie te trzy pola są wypełnione.
Jak to zrobić, używając sprawdzania formularza Laravel? Czy możliwe jest zdefiniowanie tej logiki w metodzie reguły żądania?
Jestem nowy dla Laravel.
góry dziękiWalidacja formularza Laravel z operatorami logicznymi
5
A
Odpowiedz
4
Można to osiągnąć (po stronie serwera) za pomocą warunkowych reguł walidacji
- required_if: anotherfield, wartość, ...
- required_unless: anotherfield, wartość , ...
- required_with: foo, bar, ...
- required_with_all: foo, bar, ...
- required_without: foo, bar, ...
- required_without_all: foo, bar, ...
powiedziałbym Twoim przypadku:
- daty jest wymagane, chyba że wiadomości jest wypełniany
- wymagany jest czas, chyba że komunikat jest wypełniony
- miejsce jest wymagane, chyba że wiadomość jest wypełniony
- wiadomości jest wymagany bez wszystkich data, godzina, miejsce
zasady Chain jeśli trzeba oddzielając je rury
następstwem przykładowy fragment. Użyj tej metody wewnątrz ExampleFormRequest rozszerzenie Request
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$rules = [];
switch ($this->method()) {
case 'PATCH':
case 'PUT':
case 'POST':
$rules = [
'date' => 'required_without:message',
'time' => 'required_without:message',
'venue' => 'required_without:message',
'message' => 'required_without_all:date,time,venue',
];
break;
default:
// Perform no alteration to rules
break;
}
return $rules;
}
Zamówienie documentation here
2
Jak powiedział reguły poprawności jak „Wiadomość” polu lub wszystkie z tych trzech („data”, „czas”,” miejsce ") muszą być wypełnione. Zasady powinny wyglądać jak poniżej.
$rules = [
'date' => 'required_with_all:time,venue|required_without:message',
'time' => 'required_with_all:date,venue|required_without:message',
'venue' => 'required_with_all:date,time |required_without:message',
'message' => 'required_without_all:date,time,venue',
];
+0
tak, właśnie tego szukałem. – Sachith
Powiązane problemy
- 1. Potrzebuję pomocy podejmowania if z wieloma operatorami logicznymi łatwiejszych
- 2. laravel 5.4 - Walidacja z Regex
- 3. Walidacja jako własność formularza
- 4. Laravel 5 Walidacja mima
- 5. Walidacja formularza z polami zależnymi w AngularJS
- 6. Walidacja formularza TinyMCE i HTML5
- 7. laravel 5 - typy Walidacja Mime
- 8. laravel wzór formularza wiązania
- 9. Oświadczenie Javy z + =/- = operatorami
- 10. Angular.js - czy walidacja formularza powoduje emisję?
- 11. HTML5 i walidacja formularza programowo złożonego
- 12. Walidacja formularza za pomocą Bootstrap (jQuery)
- 13. laravel 5 - walidacja obraz does'nt pracę
- 14. Walidacja formularza w Admin z formularzem Inline i formularzem modelu
- 15. Zapytanie DynamoDB z operatorami porównania
- 16. laravel chronić formularza ukrytych pól i url
- 17. laravel 4 Wzór formularza wiązania Form :: select
- 18. ASP.NET MVC Dyskretna walidacja - dlaczego kontekst formularza jest potrzebny?
- 19. wzór formularza wiąże w laravel 5,2
- 20. zachowanie funkcji bool z operatorami nie-boolowskimi
- 21. Co robię źle z operatorami warunkowymi?
- 22. crudrepository findBy metoda signature z wieloma operatorami?
- 23. Wiosna walidacja pole formularza ModelAttribute uniknąć 400 Bad Request Błąd
- 24. h: selectOneMenu z elementami logicznymi nie działa z wartością pustą
- 25. Wysyłanie pliku za pośrednictwem formularza e-mail z laravel (localhost)
- 26. Walidacja Laravel: różnica między liczbą a liczbą całkowitą?
- 27. Walidacja Laravel 5.2: format daty: Y.m.d nie działa
- 28. Laravel 5.0 IN Walidacja. Sprawdzanie poprawności za pomocą wartości ENUM
- 29. Przecinek między operatorami w C++
- 30. Pył: różnica między sekcjami logicznymi {?} I {#}
A więc chcesz albo wypełnić pole wiadomości przez użytkownika, albo tylko te trzy pola. Ale nie wszystkie cztery razem? Czy istnieje wymóg posiadania pełnej? –
Tak, nie wszystkie cztery razem. – Sachith