Laravel не удается снять флажок, используя старый с установленным значением по умолчанию - PullRequest
2 голосов
/ 06 мая 2020

У меня очень простой флажок в форме заявки

<input type="checkbox" name="active" {{ ( empty(old('active')) ? '' : ' checked' ) }}>

Мои требования:

  1. флажок должен быть установлен по умолчанию, когда пользователь заходит на сайт для в первый раз
  2. флажок должен сохранить свое значение после сбоя проверки формы

Мне кажется невозможным достичь этого, просто используя old, так как это будет либо

  • (2) запомнить значение после сбоя проверки, но оно не будет проверяться по умолчанию в начале
  • (1) проверяется по умолчанию, например, old('active', true), но тогда оно не будет можно снять отметку с него (т. е. не отмеченный флажок будет установлен после сбоя проверки, потому что значение по умолчанию установлено в old).

Каков стандартный способ решения этой проблемы? Или нет возможности использовать другое поле, чтобы проверить, была ли отправлена ​​форма?

<input type="checkbox" name="active" {{ ( empty(old('active')) && !empty(old('submit')) ? '' : ' checked' ) }}>
<input type="hidden" name="submit" value="submit">

Спасибо

1 Ответ

0 голосов
/ 06 мая 2020

Вы можете передать значение по умолчанию в old helper.

Попробуйте это:

<input type="checkbox" name="active" {{ old('active', true) ? 'checked' : '' }}>
...