【问题标题】:Laravel How to check if value exist and it is equal to 0Laravel如何检查值是否存在并且等于0
【发布时间】:2020-10-30 09:10:55
【问题描述】:

我是 laravel 的新手,我想检查该值是否存在并且它等于 1。以下是我尝试过的。但它不起作用。

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

【问题讨论】:

    标签: laravel


    【解决方案1】:

    试试这个并告诉我。

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

    【讨论】:

      【解决方案2】:

      你不需要 else 部分在条件之前定义它并检查isset

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

      【讨论】:

        【解决方案3】:

        首先,根据documentationisset() 需要一个变量。它无法评估表达式,因为您正在尝试使用 isset($request['active_year'] == "1")。其次,这与 PHP 本身的关系比 Laravel 更重要。

        您应该将检查分为两部分:首先,检查变量$request['active_year'] 是否存在。您可以使用isset($request['active_year'])!!$request['active_year'](using double-not operator) 来做到这一点。然后,用$request['active_year'] == "1"检查值是否等于1。请注意,使用==loose comparison。如果你还想检查变量是否为字符串类型,你应该使用===,这是一个严格的比较。

        考虑到上述情况,我会写:

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

        【讨论】:

          猜你喜欢
          • 2013-05-27
          • 2022-01-13
          • 2020-09-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-24
          相关资源
          最近更新 更多