Php Laravel复选框输入旧的无法正常工作
我有一张表格。提交表单后,如果表单有错误,则会重定向到同一页面,并预填充用户提交的数据。我在该表单中有Php Laravel复选框输入旧的无法正常工作,php,laravel,checkbox,Php,Laravel,Checkbox,我有一张表格。提交表单后,如果表单有错误,则会重定向到同一页面,并预填充用户提交的数据。我在该表单中有3个复选框字段。假设用户只选中了第一个复选框,并提交了表单。因此,如果表单有一些错误,它将重定向到同一页面,但问题是当它再次重定向到此处时,所有复选框都被选中,而不仅仅是第一个复选框 <div class="form-group"> <label>Hobbies: <span><em>{{$errors->first('hobbies
3个复选框
字段。假设用户只选中了第一个复选框
,并提交了表单。因此,如果表单有一些错误,它将重定向到同一页面,但问题是当它再次重定向到此处时,所有复选框都被选中,而不仅仅是第一个复选框
<div class="form-group">
<label>Hobbies: <span><em>{{$errors->first('hobbies')}}</em></span></label>
<input type="checkbox" name="hobbies[]" value="Cricket" @if (is_array(old('hobbies'))) && (in_array('Cricket', old('hobbies'))) checked @endif> Cricket
<input type="checkbox" name="hobbies[]" value="Football" @if (is_array(old('hobbies'))) && (in_array('Football', old('hobbies'))) checked @endif> Football
<input type="checkbox" name="hobbies[]" value="Badminton" @if (is_array(old('hobbies'))) && (in_array('Badminton', old('hobbies'))) checked @endif> Badminton
</div>
爱好:{{$errors->first('cabiods')}
板球
足球
羽毛球
你应该这样做才能让它工作
<div class="form-group">
<label>Hobbies: <span><em>{{$errors->first('hobbies')}}</em></span></label>
<input type="checkbox" name="hobbies[]" value="Cricket" {{ !empty(old('hobbies')) && (in_array('Cricket', old('hobbies'))) ? 'checked' : '' }}> Cricket
<input type="checkbox" name="hobbies[]" value="Cricket" {{ !empty(old('hobbies')) && (in_array('Football', old('hobbies'))) ? 'checked' : '' }}> Football
<input type="checkbox" name="hobbies[]" value="Cricket" {{ !empty(old('hobbies')) && (in_array('Badminton', old('hobbies'))) ? 'checked' : '' }}> Badminton
</div>
爱好:{{$errors->first('cabiods')}
板球
足球
羽毛球
试一试,它应该会起作用。您的括号不平衡且放错了位置,因此您的if
计算不正确
@if (is_array(old('hobbies')) && in_array('Badminton', old('hobbies')))
你检查过输入::old(?否。我没有检查你使用的是哪个版本的laravel?我正在使用laravel 5.4 Cricket更改所有三行,如下所示