2017-01-20 9 views
0

私は通知とalerFrequenciesテーブルという2つのテーブルを持っています。 notification_idalertFrequenciesテーブルの外部キーです。通知テーブルはidとウェブサイトのURLフィールドを持ち、alerFrequnciesテーブルのフィールドはid,notification_idcreated_atフィールドです。1対多の関係は、アタッチまたは保存を使用します。

次の機能を使用してalertFrequenciesテーブルにデータを自動的に挿入しようとしましたが、失敗しました。

private function add(Notification $notification,alertFrequency $alert, $alertTime){ 
    $notification->alertFrequencies()->attach($alert, 
          ['created_at'=>date($alertTime)]); 
} 
+0

Carbonは、正確なエラーメッセージが含まれる(と引用マークアップを使用)してください使用して、以下のように、あなたのデータを保存するとき。 – Shawn

答えて

0

one to manyの関係でattach()の代わりにupdate()を使用してください。このようなあなたのNotificationモデルで$dates配列にコメントregistercreated_atupdated_atフィールドに答えるためにmany to many ralations

private function add(Notification $notification,alertFrequency $alert, $alertTime){ 
    $notification->alertFrequencies()->update(['created_at'=>date($alertTime)]); 
} 

編集---

で使用し取り付けます。

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

そして、それを含めると

$notification->alertFrequencies()->update(['created_at'=>Carbon::parse($alertTime)]); 
+0

更新は完璧ですが、update_at列を更新し続け、created_atを00:00:00に変更し、データレコードを失うこともあります。 ? –

0

Attach多対多関係を作成するために使用されます。

1対多の関係を作成するには、alertFrequencyオブジェクトのnotification_idを設定して保存するだけです。

+0

私はそれを保存するためには事実としては文句を言っておらず、保存に失敗しました。私はデータベースに新しいレコードが表示されません –

関連する問題