laravel编辑表单复选框值旧输入

时间:2019-06-15 01:26:32

标签: php laravel

如何将old('')用于复选框值。以下代码的问题在于,由于$ baby_registry-> reminder_email为true,因此它始终为true并已检查。因此,当您在未选中复选框的情况下发布表单时,如果发布请求中没有该表单,如何在代码中对其进行测试

@php
    $reminder_email = old('reminder_email', $baby_registry->reminder_email);
@endphp

<input type="checkbox" name="reminder_email" id="reminder_email" {{ $reminder_email ? 'checked' : '' }}>

我最终不得不为此做代码

@if($errors->any() && old('reminder_email') == 'on')
    <input type="checkbox" name="reminder_email" id="reminder_email" checked>
@elseif($errors->any() && !old('reminder_email'))
    <input type="checkbox" name="reminder_email" id="reminder_email">
@else
    <input type="checkbox" name="reminder_email" id="reminder_email" {{ $baby_registry->reminder_email ? 'checked' : false }}>
@endif

4 个答案:

答案 0 :(得分:0)

您尝试过

@if(isset($reminder_email))
<input type="checkbox" name="reminder_email" id="reminder_email" checked>
@endif

答案 1 :(得分:0)

您可以尝试一下。 但由于没有 value 属性

,因此我不确定它要发送的内容
<input type="checkbox" name="reminder_email" id="reminder_email" @if(old('reminder_email', $baby_registry->reminder_email))checked @endif >

答案 2 :(得分:0)

尝试一下:

<input type="checkbox" name="reminder_email" id="reminder_email" value='1' {{ old('reminder_email', $baby_registry->reminder_email)? 'checked="checked"':null }}>

答案 3 :(得分:0)

如果未选中复选框输入,则$_POST全局中不存在。

所以我建议您尝试一下:

<input type="checkbox" name="reminder_email" id="reminder_email" {{ !$reminder_email ? "" : "checked" }} />