2017-07-12 33 views
0

指定した日付に曜日を追加したいとします。これは私のコードです:エラー:文字列のメンバー関数addDays()を呼び出す

if (Carbon::now() <= $campaign->s_lastrun->addDays(28)) { 
     $onAir = 1; 
} 

私は私のデータベースにいくつかの変更を加えてまで、それは働いていた、そして今、私はエラーを取得しています:Call to a member function addDays() on strings_lastrunはカラム型DATEを持っているにもかかわらず。 アイデア

Carbon::parse($campaign->s_lastrun) 

し、このように比較します:あなたはこのようにカーボンを使用して$campaign->s_lastrunを解析する必要が

+0

データベースに行った変更は何ですか? – Kisaragi

+0

そしてあなたは何を変えましたか? – Andreas

+0

's_lastrun'の型が' DATE'の場合、このフィールドはCarbonの日付として動作しません。そのフィールドは 'timestamp'型である必要があります。まず 'Carbon :: parse()'を実行して、代わりに必要な処理を行うことができます。 –

答えて

3

あなたはEloquentに日付であることを伝える必要があるので、それをCarbonに変換します。

モデルでそう

By default, Eloquent will convert the created_at and updated_at columns to instances of Carbon, which extends the PHP DateTime class to provide an assortment of helpful methods. You may customize which dates are automatically mutated, and even completely disable this mutation, by overriding the $dates property of your model.

、以下を追加します:docsあたり

protected $dates = ['created_at', 'updated_at', 's_lastrun']; 

デフォルトのタイムスタンプを使用していない場合はcreated_atupdated_atを削除します。

1

addDays()は、文字列変数に適用することはできませんので、

if (Carbon::now() <= Carbon::parse($campaign->s_lastrun)->addDays(28)) { 
    $onAir = 1; 
} 
+0

また、 'lte()'関数を使用してください。 – kjdion84

関連する問題