Eloquent Modell nicht aktualisieren, updated_at timestamp

Bin ich mit Laravel 5.1. Es einfach zu machen, habe ich den folgenden code

Migration:

Schema::create('sitemap_data', function (Blueprint $table) {
    //Primary and foreign keys
    $table->increments('id');
    $table->string('postUrl');
    //Database functions
    $table->timestamps();
});

- Und dies ist der code irgendwo anders ich bin mit

$sitemapData = SitemapData::firstOrNew([
                'postUrl' => $post
            ]);
$sitemapData->save();

Nun, nach der Laravel Dokumentation

Wieder, die updated_at timestamp automatisch aktualisiert werden, so gibt es keine Notwendigkeit, manuell setzen Sie den Wert

Den updated_at-Wert aktualisiert werden soll in der Tabelle. Dies ist jedoch nicht passiert.

Es ist nur der erste insert -, aber nicht auf aktualisieren. Wenn ich es manuell mache, wie diese

$sitemapData = SitemapData::firstOrNew([
                    'postUrl' => $post
                ]);
$sitemapData->updated_at = Carbon::now();
$sitemapData->save();

es funktioniert. Aber die docs sagen sollte dies passiert automatisch, also was ist hier falsch?

Ich gesucht habe einige Seiten auf stackoverflow für diese Frage, aber die, die ich gefunden, wo für Laravel 3 oder 4.1, 4.2 usw.

Wie würde ich das tun, richtig?

Wenn es keine änderungen an den Daten aufzeichnen, dann wird es nicht aktualisiert werden..... das ist nur unnötiger overhead.... und $sitemapData = SitemapData::firstOrNew([ 'postUrl' => $post ]); $sitemapData->save(); nicht ändern, dass die Daten in irgendeiner Weise
Ah okay! Ich dachte, die updated_at aktualisiert wird, unabhängig von änderungen oder nicht. Du hast Recht, dass ich mich nicht ändern, ich wollte nur überprüfen, ob es funktioniert oder nicht. Danke. Jetzt macht das Sinn
Nein, dies ist, wo Laravel versucht, schlau zu sein, und vermeiden Sie die Kosten einer Datenbank-Aufruf, wenn es nicht notwendig ist

InformationsquelleAutor Musterknabe | 2015-06-15

Schreibe einen Kommentar