Почему проверка двух флажков в одной форме не работает на laravel?

Мой вид лезвия, как это:

...
<div class="checkbox">
    <label>
        {{Form::checkbox('is_anonymous', 1, false)}} As anonymous
    </label>
    @if ($errors->has('is_anonymous'))
        <div class="help-block">
            <strong>{{ $errors->first('is_anonymous') }}</strong>
        </div>
    @endif
</div>
<div class="checkbox">
    <label>
        {{Form::checkbox('term', 1, false, array('id'=>'term'))}} I aggree
    </label>
    @if ($errors->has('term'))
        <div class="help-block">
            <strong>{{ $errors->first('term') }}</strong>
        </div>
    @endif
</div>

Моя проверка такова:

public function rules()
{
    return [
        'is_anonymous' =>'required',
        'term' =>'required'
        ...
    ];
}

Если код выполнен, проверка не работает

Не появляется сообщение. Отличается ли процесс проверки от флажка?

Как я могу решить эту проблему?


person Success Man    schedule 31.08.2017    source источник
comment
Пожалуйста, перейдите по этой ссылке (stackoverflow.com/questions/37345363/) надеюсь эта работа для тебя   -  person AddWeb Solution Pvt Ltd    schedule 31.08.2017
comment
@AddWeb Solution Pvt Ltd, я видел ссылку. Но мне это не помогло. Моя проблема в том, что у меня есть 2 флажка   -  person Success Man    schedule 31.08.2017
comment
Подожди, я проверю   -  person AddWeb Solution Pvt Ltd    schedule 31.08.2017
comment
Это сработает, просто убедитесь, что входное значение не будет пустой строкой или ложью. И «флажок» => «требуется» в порядке, если ключ является значением атрибута входного имени.   -  person AddWeb Solution Pvt Ltd    schedule 31.08.2017
comment
@AddWeb Solution Pvt Ltd. Если флажок не установлен, значение не существует. Итак, поскольку значение не существует, проверка не отображается   -  person Success Man    schedule 31.08.2017
comment
Просто чтобы перепроверить, я прав, говоря, что если флажок не установлен, проверка проходит, то есть выполняется код в вашем методе Route/Controller? Проверка не проходит, даже если флажок установлен?   -  person Rwd    schedule 02.09.2017


Ответы (2)


Вы можете заменить правило required на accepted при работе с флажками.

Как указано в документах:

В проверяемом поле должно быть указано значение "да", "включено", "1" или "истина". Это полезно для подтверждения принятия «Условий обслуживания».

person Paul Santos    schedule 12.12.2017

Я столкнулся с этой проблемой. Я думаю, это происходит потому, что когда флажок не установлен, он не будет включен в запрос. И если он не включен в запрос, Laravel не будет пытаться его проверить.

Мое решение состояло в том, чтобы добавить скрытый ввод со значением по умолчанию перед фактическим флажком.

{{Form::hidden('term', false)}}
{{Form::checkbox('term', 1, false, array('id'=>'term'))}} I aggree

Вот связанный вопрос об этом поведении .

person Camilo    schedule 12.12.2017