我正在开发一个项目,我必须在其中存储工作信息。例如 job_start_date,job_end_date,payment_received_date
。它最初可以为空。一旦作业开始,管理员将更新 job_start_date 和 job_end_date 列。所以我不能将当前日期和时间设置为这些字段的默认值。问题是,在更新 job_start_date 字段时,如果 laravel 发现 job_start_date 列为空,则会抛出错误。调用非对象的成员函数 format()。尽管我已经在我的模型中声明了 protected $dates = ['job_start_date','job_end_date','payment_received_date'];
。有什么建议可以克服这个问题吗?
示例代码:
<!-- job start date -->
<div class="form-group {{ $errors->has('job_start_date') ? 'has-error' : '' }}">
<label class="col-md-4 control-label" for="job_start_date">Job Start Date</label>
<div class="col-md-4">
<input id="job_start_date" name="job_start_date" type="date" value="{{ $job_account_detail->job_start_date->format('Y-m-d') }}" class="form-control input-md">
{!! $errors->first('job_start_date','<span class="help-block">:message</span>') !!}
</div>
</div>
最佳答案
您可以在 View 中检查空值以避免错误
<input id="job_start_date" name="job_start_date" type="date" value="{{ !is_null($job_account_detail->job_start_date) ? $job_account_detail->job_start_date->format('Y-m-d') : "" }}" class="form-control input-md">
我会在模型中添加一个方法来处理验证和格式化,让我的生活更轻松:
// in your model
public function getJobStartDateInDateStringFormat() {
return !is_null($this->job_start_date)
? $this->job_start_date->format("Y-m-d")
: "";
}
然后在您的 View 中您可以调用该方法:
<input id="job_start_date" name="job_start_date" type="date" value="{{ $job_account_detail->getJobStartDateInDateStringFormat() }}" class="form-control input-md">
关于php - Laravel 架构构建器,更新可为空的时间戳字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36489451/