[英]Laravel schema builder, update nullable timestamp field
我正在開發一個項目,我必須存儲工作信息。 例如job_start_date,job_end_date,payment_received_date
。 它最初可以為空。 一旦作業啟動,admin將更新job_start_date和job_end_date列。 所以我不能將當前日期和時間設置為這些字段的默認值。 問題是,在更新job_start_date字段時,如果laravel發現job_start_date列為null,則會引發錯誤。 在非對象上調用成員函數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>
您可以在視圖中檢查空值以避免錯誤
<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")
: "";
}
然后在您的視圖中,您可以調用該方法:
<input id="job_start_date" name="job_start_date" type="date" value="{{ $job_account_detail->getJobStartDateInDateStringFormat() }}" class="form-control input-md">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.