2016-09-28 8 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"/> 

チェックボックスをオンにするとチェックが保存されます。コントローラのArray:

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

だから、もし "CHECK2" のチェックボックスがチェックされていない - 私はエラーを取得:

ErrorException in adFormController.php line 70:

どのようにそれを修正するためには?

+0

チェックボックスがオフの場合は、何も送信されません。あなたの質問には、たくさんの情報が欠けています。 'errorException:adFormController.php行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

関連する問題