【问题标题】:How do you use an if statement to stop a calculation in Laravel?在 Laravel 中如何使用 if 语句停止计算?
【发布时间】: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

标签: php laravel eloquent laravel-8


【解决方案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'
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2020-11-10
    • 1970-01-01
    • 2022-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多