如果未选中,如何传递复选框值 0,如果使用数组 laravel 选中,则如何传递复选框值 1

Dum*_*tru 2 php laravel

我有带复选框的表格

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

未选中复选框时如何传递 0 值?

我的控制器:

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

    foreach($account as $acc => $val) {
        dd($val); //how get 0?
    }
}
Run Code Online (Sandbox Code Playgroud)

Nir*_*hoi 7

@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
Run Code Online (Sandbox Code Playgroud)

在控制器中

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
}
}
Run Code Online (Sandbox Code Playgroud)

如果选中复选框,则获取值 = 1 如果未选中复选框,则获取值 = 0


Mal*_*dze 5

复选框仅在选中时发布,因此在控制器中您可以使用此片段

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


    $myVar = isset($request->account[0]) ? 1 : 0;
}
Run Code Online (Sandbox Code Playgroud)