在 Laravel 中如何使用 if 语句停止计算?

Posted

技术标签:

【中文标题】在 Laravel 中如何使用 if 语句停止计算?【英文标题】:How do you use an if statement to stop a calculation in Laravel? 【发布时间】:2022-01-08 19:31:11 【问题描述】:

我有一个表单,用户可以在其中输入他们一天中的jobs 数量以及他们旅行的km。输入这两个字段后,km 字段除以job 字段以将值输出到另一个字段调用km_jobcard。问题是,如果某人当天做了 0 份工作,则无法进行计算,因为您不能除以 0。无论如何,是否可以使用 if 语句或任何其他方法将该字段填充为 none 或给出符合逻辑的输出如果job 字段为 0,则 DB?

我的控制器:

public function store(Request $request)


    // $energy = new Maintenance;
    $energy = new VehicleLog();
    $request->validate([
        'start_odo' => 'required',
        'end_odo' => 'required|gt:start_odo',
    ]);

    $energy->jobcard_count = $request->input('jobcard_count');
    $energy->start_odo = $request->input('start_odo');
    $energy->end_odo = $request->input('end_odo');
    $energy->km = $request->input('end_odo') - $request->input('start_odo');
    $energy->km_job = ($request->input('end_odo') - $request->input('start_odo')) / $request->input('jobcard_count');
    $energy->km_job = number_format($energy->km_job, 2);
    $energy->save();
    return redirect('/vmaintenance')->with('success', 'data added');

我的看法:

<div class="mb-3">
  <label for="recipient-name" class="col-form-label">Job Cards Completed:</label>
  <input type="number" style="width: 7em" name="jobcard_count" class="form-control" id="recipient-name" min="1" required>
  <label for="recipient-name" class="col-form-label">Additional comments:</label>
  <textarea class="form-control" id="comments" rows="3" placeholder="Enter additional comments here" name="comments"></textarea>
</div>

      <div class="mb-3" style="float:left;" style="margin-left: 200px;">
        <label for="recipient-name" style="width: 7em"class="col-form-label">Start dODO</label>
        <input type="number"style="width: 7em" name="start_odo" class="form-control" id="start_odo" min="0" onchange="document.getElementById('end_odo').min=this.value;" required>
      
      </div>
    
      <div class="mb-3" style="float:left;"style="margin-left: 200px;">
        <label for="recipient-name" class="col-form-label">End ODO</label>
        <input type="number" style="width: 7em" name="end_odo" class="form-control @error('end_odo') is-invalid @enderror" id="end_odo" min="document.getElementById('start_odo').value"  required>
        @error('end_odo')
        <span class="invalid-feedback"> $message </span>
    @enderror
   
      </div>

【问题讨论】:

是什么阻止你使用conditional statement 【参考方案1】:

这样的?

if($request->input('jobcard_count') > 0)     
    $energy->km_job = ($request->input('end_odo') - $request->input('start_odo')) / $request->input('jobcard_count');
 else 
    $energy->km_job = 0; // or 'none'

【讨论】:

以上是关于在 Laravel 中如何使用 if 语句停止计算?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 5.6 中检查 @if 语句中的当前 URL

如何使用 if 语句比较 laravel 数据库中的值?

如何在 laravel 中为 highcharts 做 if else 语句

条件检查时如何一次停止执行if语句?

使用 Blade 模板的 Laravel 5 表单中预选选项的条件 @if 语句

如何在没有冗余计算的 if 语句中使用 std::valarray?