Laravel复选框输入旧的不正常

时间:2017-09-01 07:00:53

标签: php laravel checkbox

我有一张表格。提交表单后如果有错误,则重定向到同一页面并预先填充用户提交的数据。我有3 checkbox个字段。假设用户仅检查了first checkbox并提交了表单。因此,如果表单有一些错误,它会重定向到同一页面,但问题是当它再次重定向到all the checkboxes got selected instead of only the 1st one时。

<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>

2 个答案:

答案 0 :(得分:1)

您的括号不平衡且放错位置,因此您的if评估不正确。

@if (is_array(old('hobbies')) && in_array('Badminton', old('hobbies')))

答案 1 :(得分:0)

你应该这样做才能让它发挥作用,

<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>

试一试,它应该有用。