Галочка Laravel в форме сборки не обновляет значение

В Laravel я использую Form Builder. Моя форма одинакова для создания и обновления поста. В этой форме я создаю флажок для включения / отключения комментариев в сообщении. Значение по умолчанию 1 (проверено). Флажок отлично работает, когда я создаю новый пост. Также, когда я загружаю страницу редактирования, если в сообщении из базы данных включен комментарий, флажок загрузки страницы установлен, а если в сообщении отключен, флажок загрузки страницы отмечен. Проблема в том, когда я хочу отредактировать и изменить это и обновить сообщение. Включить комментарии, значение которых не меняется. Там нет никаких ошибок, и измененные значения из других полей формы хранятся правильно. Имя столбца — enable_comments — логический тип, и это мой код поля ввода конструктора форм:

{!! Form::label('enable_comments') !!}
{!! Form::checkbox('enable_comments', $post->exists ? $post->enable_comments : 1, !$post->exists ? true : $post->enable_comments) !!}

Обратите внимание, что все отлично работает при создании поста. Если флажок установлен, он хранит 1 в базе данных, если нет, он хранит 0. Кроме того, он корректно отображается на странице редактирования. Если значение «enable_comments» в базе данных равно 1, оно проверяется на странице редактирования, если оно равно 0, флажок снят.

Пожалуйста помоги. Где я ошибаюсь? Где проблема в этой логике?

0

Решение

это происходит только тогда, когда вы снимаете флажок? Когда он не отмечен, он не возвращает значение обратно. Добавление строки ниже к Request класс будет использовать значение по умолчанию, поэтому оно существует каждый раз, независимо от того, установлено ли оно

public function rules()
{
$this->merge(['enable_comments' => $this->input('enable_comments', 0),]);
0

Другие решения

Других решений пока нет …