在 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
如何在 laravel 中为 highcharts 做 if else 语句