2016-04-22 7 views
0

Laravelではフォームビルダーを使用しています。私のフォームは投稿の作成と更新のために同じです。そのフォームでは、投稿のコメントを有効/無効にするためのチェックボックスを作成します。デフォルト値は1(チェック)です。新しい投稿を作成しているときに、チェックボックスは正常に機能します。また、編集ページを読み込むときに、データベースからの投稿が有効なコメントであれば、ページ読み込みチェックボックスがオンになり、投稿が無効であればコメントページにチェックが外れます。問題は、これを編集して変更してポストを更新したいときです。コメント値を変更しないようにする。エラーはなく、他のフォームフィールドから変更された値は正しく保存されます。列名がenable_commentsある - boolean型と、これは私のフォームビルダー入力フィールドコードです:ビルドフォームの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

を確認した場合、それは関係なく、すべての時間が存在するようRequestクラスに以下の行を追加すると、値をデフォルト設定されます。 –

答えて

0

このチェックボックスをオフにすると、これが起こりますか?チェックされていないときは値を返さない。その私はポストが存在する場合、第三引数は1または0をしているが、私は真か偽必要、ということを理解

public function rules() 
{ 
    $this->merge(['enable_comments' => $this->input('enable_comments', 0),]); 
関連する問題