Во-первых, согласно документации , isset()
ожидает переменную. Он не может оценивать выражения, как вы пытаетесь с isset($request['active_year'] == "1")
. Во-вторых, это больше относится к самому PHP, чем к Laravel.
Вы должны разделить проверку на две части: во-первых, проверьте, существует ли переменная $request['active_year']
. Вы можете сделать это с помощью isset($request['active_year'])
или !!$request['active_year']
( с использованием оператора двойного не ). Затем проверьте, равно ли значение 1 с помощью $request['active_year'] == "1"
. Обратите внимание, что использование ==
- это вольное сравнение . Если вы используете sh, чтобы также проверить, относится ли переменная к типу string, вы должны использовать ===
, что является строгим сравнением.
Учитывая вышеизложенное, я бы написал:
if(!!$request['active_year'] && $request['active_year'] === "1") {
$activeYear = 1;
$currentActiveYear = AcademicYear::where('active_year', 1)->update(['active_year' => 0]);
} else {
$activeYear = 0;
}