2016-04-08 4 views
1

私はジョブの情報を保存する必要があるプロジェクトを開発しています。たとえば、job_start_date,job_end_date,payment_received_dateです。それは最初はNULL可能です。ジョブが開始されると、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'];を私のモデルで宣言しましたが。この問題を克服するための提案はありますか?Laravelスキーマビルダー、null可能なタイムスタンプフィールドを更新する

コード例:

<!-- 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> 

答えて

0

あなたはエラーに

<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"> 

を避けるために、あなたのビュー内のNULL値をチェックすることができます私は自分を作るために、検証およびフォーマットを処理するためにモデルにメソッドを追加します人生が容易:

// 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"> 
関連する問題