2016-04-22 13 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,但我需要真或假的存在,無論每次添加下面一行的一個Request類將默認值。 –

回答

0

只有當您取消選中該框時纔會發生這種情況?如果未選中,則不會返回值。所以如果檢查

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