2016-11-11 19 views
1

私はモデルの一つは、多くのタイムスタンプフィールドを持っている、彼らはすべてのようなものを使用して、移行に作成されている、5.1.26 Laravelのプロジェクトを持っている:MySQLの上Laravel、Carbon and Timestamp、デフォルト値の設定方法は?

$table->timestamp('repaired_at'); 

フィールドは "のデフォルト値を取得します0000-00-00午前0' 時00分00秒0000-00-00 00:00:00私は確認したい場合は項目が、私は(デフォルト値をチェックし、修復されていない場合は、素晴らしい作品

" '):

if (starts_with($item->repaired_at,"-0001")) { 
    // Date Have not been set 
} else { 
    // Date have been set 
} 

カーボンは' 0000-0 0-00 00:00:00 '〜「-0001-11-30 00:00:00」

問題は、タイムスタンプフィールドをデフォルト値「0000- 00-00 00:00:00 '

日付が設定されているかどうかを判断し、日付をデフォルト値(設定されていない値)にリセットする必要があります...

私は任意の助けに感謝
$item->returned_at = DEFAULT_VALUE; 

....

+0

フィールドをnullにできないようにするのはなぜですか? –

答えて

1

を代わりにネガに頼るの:私はので、私は単にような何かを行うことができ雄弁を使用して維持したいと思います特定のフィールドをヌル可能にし、フィールドがヌルかどうかをチェックします。

これは、新しい移行の外観です。

Schema::table('table_name', function(Blueprint $table) { 
    $table->timestamp('repaired_at')->nullable()->change(); 
}); 
0

あなたに試すことができます。

$item->repaired_at->year < 1 

または

$item->repaired_at->lt(Carbon\Carbon::minValue()) 

しかし@クリスは、あなたのDBに nullableそれを設定するための最良の方法であると述べたよう。

関連する問題