Прежде всего, я рекомендую вам Laravel Collective для создания входных данных формы.
У вас есть несколько ошибок, возможно, вашу проблему можно решить, просто исправив первую точку, но вы должны проверить все из них.
Неправильно ожидаемое значение внутри контроллера:
В вашем jQuery
коде вы присваиваете is_active
значение 1
, но в вашем контроллере вы проверяете, является ли оно on
. Просто сверьтесь с вводом запроса, если оно равно 0, оно будет оценено как ложное.
if($request->get('is_active')){
$is_active=1;
} else{
$is_active=0;
}
Или просто:
$is_active = $request->get('is_active');
Повторные идентификаторы ввода:
<input type="hidden" id="id" value="{{$function->id}}" />
<input class="toggle_status" type="checkbox" @if($function->is_active) checked @endif id="is_active" name="is_active" data-on="启用" data-off="禁用" value="{{$function->id}}" data-toggle="toggle">
Эти входы находятся внутри цикла foreach
, поэтому я предполагаю, что их несколько. Если это правильно, вы не можете иметь один и тот же идентификатор дважды. Если они вам нужны, добавьте к ним значение индекса цикла, если нет, просто удалите их.
id="id{{ $loop->index }}"
id="is_active{{ $loop->index }}"
Повторные имена:
То же, что и выше, у вас, вероятно, несколько name="is_active"
. Это не недействительный HTML, но когда вы работаете с PHP, вы должны использовать имена массивов: name="is_active[]"
.