Laravel Как проверить, существует ли значение и равно 0 - PullRequest
2 голосов
/ 09 июля 2020

Я новичок в laravel и хочу проверить, существует ли значение, равное 1. Ниже я пробовал. Но не работает.

if(isset($request['active_year'] == "1")) {
    $activeYear = 1;
    $currentActiveYear = AcademicYear::where('active_year', 1)->update(['active_year' => 0]);
  } else {
    $activeYear = 0;
  }

Ответы [ 3 ]

1 голос
/ 09 июля 2020

Вам не нужно, чтобы другая часть определяла его перед условием и проверяла с помощью isset

$activeYear = 0;
if(isset($request['active_year']) && $request['active_year'] == '1'){
    $activeYear = 1;
    $currentActiveYear = AcademicYear::where('active_year', 1)->update(['active_year' => 0]);
}
1 голос
/ 09 июля 2020

Попробуйте это и дайте мне знать.

if(($request['active_year'] == "1") && isset($request['active_year'])) {
    $activeYear = 1;
    $currentActiveYear = AcademicYear::where('active_year', 1)->update(['active_year' => 0]);
  }
  $activeYear = 0;
0 голосов
/ 09 июля 2020

Во-первых, согласно документации , 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...