Как передать значение флажка 0, если не отмечено, и 1, если проверено с использованием массива laravel - PullRequest
0 голосов
/ 23 мая 2018

У меня есть форма с флажком

   @foreach($accounts as $acc)
         <input type="checkbox" value="1" name="account[{{ $acc->id }}]" @if($acc->published) checked @endif>
   @endforeach

Как передать 0 значений, если флажок не установлен?

Мой контроллер:

public function updateMon(Request $request) {
    $request->validate([
        'account' => 'required|array',
        'account.*' => 'integer'
    ]);

    foreach($account as $acc => $val) {
        dd($val); //how get 0?
    }
}

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019
@foreach($accounts as $acc)
         <input type="hidden" value="0" name="account[{{ $acc->id }}]">
         <input type="checkbox" value="1" name="account[{{ $acc->id }}]" @if($acc->published) checked @endif>
@endforeach

В контроллере

public function updateMon(Request $request) {
$request->validate([
    'account' => 'required|array',
    'account.*' => 'boolean'
]);

foreach($account as $acc => $val) {
    dd($val); //that returns 0 if not checked
}
}

Если флажок установлен, чем значение = 1, если флажок не установлен, значение = 0

0 голосов
/ 23 мая 2018

флажки ставятся только тогда, когда они отмечены, поэтому в контроллере вы можете использовать этот фрагмент

public function updateMon(Request $request) {
    $request->validate([
        'account' => 'required|array',
        'account.*' => 'integer'
    ]);


    $myVar = isset($request->account[0]) ? 1 : 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...