2016-12-07 2 views
0

In Eloquent bei der Instanziierung des Modells durch die beiden Zeitstempel erstellt - created_at und updated_at mit den gleichen Werten. Aber gemäß der Logik beim Erstellen eines Labels sollte festgelegt werden, ob das erstellte und das Label beim nächsten Upgrade aktualisiert werden. Wie man es repariert?Eloquent set updated_at Wert mit erstellen. Ho kann es reparieren?

Eloquent 5.2, created_at und updated_at in db ist integer (geschützt $ Datumsformat = 'U')


UPDATE - wenn ich die Verfahren, die Eigenschaften created_at und updated_at ist immer noch zur gleichen Zeit aktualisiert. Das ist die erste Aktion - die Schöpfung, werden gleichgesetzt. Die zweite Aktion - update. Auch hier sind beide Felder aktualisiert und sie haben den gleichen Wert.

+0

Was möchten Sie erreichen? – Milkmannetje

+0

updated_at in create moment als null gesetzt –

+0

Können Sie ein Codebeispiel geben? – Milkmannetje

Antwort

0

Dies ist, wie Laravel tut Dinge manchmal nicht die updated_at null zu lassen ist auch eine Möglichkeit, Probleme mit nicht null Einschränkungen zu vermeiden. Aber du kannst das für dich reparieren, wenn du willst. Sie werden wahrscheinlich in der Lage sein, so etwas zu tun:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model as Eloquent; 

class BaseModel extends Eloquent 
{ 
    public function save(array $options = []) 
    { 
     $saved = parent::save($options); 

     if ($this->wasRecentlyCreated) { 
      $this->updated_at = null; 

      parent::save($options); 
     } 

     return $saved; 
    } 
} 

und nutzen diese Basemodel in allen Modellen

Verwandte Themen