2016-09-28 85 views
0

簡單情況。多個複選框:Laravel 5.2,空陣列錯誤

<input name="check1[]" type="checkbox" class="magic-checkbox" value="value1_1"/> 
<input name="check1[]" type="checkbox" class="magic-checkbox" value="value1_2"/> 

<input name="check2[]" type="checkbox" class="magic-checkbox" value="value2_1"/> 
<input name="check2[]" type="checkbox" class="magic-checkbox" value="value2_2"/> 

它會保存,並且如果選中複選框,我會進行檢查。陣列控制器中:

$checkboxes_array = array_merge($ch->check1, $ch->check2); 

所以,如果 「CHECK2」 複選框不檢查 - 我得到一個錯誤:

ErrorException in adFormController.php line 70:

如何解決呢?

+0

如果未勾選複選框,則不會發送任何內容。而你的問題是缺少一堆信息。 'adFormController.php中的ErrorException:第70行:'不提供任何有用的信息。 – Mihailo

+0

是的,如果不選中 - 不存儲。但我需要顯示沒有檢查過。所以,我應該通過查看所有部分的數組... 70行: '$ checkboxes_array = array_merge($ ch-> check1,$ ch-> check2);' –

回答

0

基本上在某些時候您需要檢查請求是否具有該名稱的輸入。在這種情況下:

if(!isset(request('check1')){ 
    $ch->check1 = [0,0]; 
} 
if(!isset(request('check2')){ 
    $ch->check2 = [0,0]; 
} 

你檢查了他們的方式很容易出現制動,因爲,你的情況,$ch->check2未設置。在array_merge之前嘗試傾銷dd($ch->check2)

+0

謝謝,它有幫助!所有我需要的是虛擬數組,如果數據未保存。 –

+0

確實,很高興我可以幫忙:]我建議你在一個單獨的課程中做這種事情。 Laravel已經擁有了它們(laravel是驚人的)。研究[FormRequestValidation](https://laravel.com/docs/5.2/validation#form-request-validation) – Mihailo