2016-04-22 1 views
0

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

{!! 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

Я понимаю, что, если пост существует, третий аргументы 1 или 0, но мне нужно истинным или ложным. –

ответ

0

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

public function rules() 
{ 
    $this->merge(['enable_comments' => $this->input('enable_comments', 0),]); 
Смежные вопросы