2016-03-27 17 views
1

Basit için (timestamp) started_at, (int) duration alanım var ve ils [1, 2, 3] ile satırlarım var. İlk nesneyi kaldırdığımda, sonraki satırlarda started_at alanını güncellemek istiyorum (örneğimde satır 2 ve 3'tür). Birden çok zaman damgası dosyası güncelleştirmesi Laravel ORM Eloquent

Böyle bir şey yapmaya çalıştık:

Model::where('id', '>', $myObject->id) 
    ->update([ 
     'started_at' => DB::raw('started_at - ' . $myObject->duration), 
    ]); 

Ama bu yapı 0000-00-00 00:00:00 benim alanları ayarlayın. Bunu nasıl düzeltebilirim?

cevap

1

Ben sorunun SQL sözdizimi ile olduğunu düşünüyorum - Böyle dönemleri çıkarma olamaz - Eğer DATE_SUB function ya da (MySQL için) ARALIĞI anahtar kelime

GÜNCELLEME kullanmalıdır: o sütundaki Ayrıca can mağaza damgası basit bir sayı olarak. Bu durumda aritmetik işlemler çalışacaktır.

+0

"UNIX_TIMESTAMP()" veya MySQL'de olduğu gibi bir şey biliyorum, ama benim sorunum için küresel bir çözüm bulmak istiyorum;) – ventaquil

+0

Kullanmadan aralıkları kolayca eklemek/çıkarmak istiyorsanız, bu iyi bir seçenek olabilir. RDBMS'ye özgü işlevler. PHP'de zaman damgası oluşturun, saklayın ve onunla matematiksel işlemleri gerçekleştirebileceksiniz. –

+0

Verileri PHP değişkenlerinde depolayabilirim, fakat birçok veri için birçok güncellem var :( – ventaquil